关于获取子进程退出码的问题!!!
我想在子程序的取消按钮消息响应函数里用PostQuitMessage(1)设置退出码为1,然后父进程中在子进程结束时用GetExitCodeProcess()获取子进程的退出码,结果却得不到正确的退出码1,可是将PostQuitMessage(1)改成exit(1)就能获取到了。。。想知道这是什么原因 PostQuitMessage和exit有什么区别吗,为什么PostQuitMessage不行????{:5_99:}求解释~~~~
本帖最后由 friendan 于 2013-11-7 20:21 编辑
PostQuitMessage()是异步操作,该函数执行后,子进程并没有马上退出。
exit()是同步操作,该函数执行后,子进程马上退出。这是你为什么用exit可以得到子进程的退出码,而用PostQuitMessae()得不到子进程退出码的原因了。
如果你要用PostQuitMessage(),加上以下代码试试:
// 等待子进程的退出
WaitForSingleObject(hChild, INFINITE);
// 获取子进程的退出码
DWORD dwExitCode=-1;
GetExitCodeProcess(hChild, &dwExitCode);
页:
[1]