花落、季 发表于 2013-11-7 18:23:27

关于获取子进程退出码的问题!!!

我想在子程序的取消按钮消息响应函数里用PostQuitMessage(1)设置退出码为1,然后父进程中在子进程结束时用GetExitCodeProcess()获取子进程的退出码,结果却得不到正确的退出码1,可是将PostQuitMessage(1)改成exit(1)就能获取到了。。。
想知道这是什么原因 PostQuitMessage和exit有什么区别吗,为什么PostQuitMessage不行????{:5_99:}求解释~~~~

friendan 发表于 2013-11-7 18:23:28

本帖最后由 friendan 于 2013-11-7 20:21 编辑

PostQuitMessage()是异步操作,该函数执行后,子进程并没有马上退出。
exit()是同步操作,该函数执行后,子进程马上退出。这是你为什么用exit可以得到子进程的退出码,而用PostQuitMessae()得不到子进程退出码的原因了。

如果你要用PostQuitMessage(),加上以下代码试试:

// 等待子进程的退出
WaitForSingleObject(hChild, INFINITE);

// 获取子进程的退出码
    DWORD dwExitCode=-1;
    GetExitCodeProcess(hChild, &dwExitCode);

页: [1]
查看完整版本: 关于获取子进程退出码的问题!!!