这里的守护进程指的是无控制终端的进程。
Linux下运行进程只需要后面添加&就可以实现。有的时候需要设计一个可以同时在Windows和Linux下运行的守护进程,为了避免过多的修改代码。可以添加如下伪指令来实现:
#ifndef WIN32
#pragma comment(linker,"subsystem:windows entry:mainCRTStartup")
#endif
设置链接选项,subsystem为windows,即GUI程序,窗口必须显示创建;entry指定进入的函数为int main(int argc, char*argv);
其实可以直接指定链接选项中的subsystem参数,把入口参数改为int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
只不过在使用ACE情况下,需要入口函数必须是main,所以为了方便在Windows和Linux下同时运行,只好采用上述方法实现。