鱼C论坛

 找回密码
 立即注册
查看: 3088|回复: 1

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

[复制链接]
发表于 2013-11-7 18:23:27 | 显示全部楼层 |阅读模式
20鱼币
我想在子程序的取消按钮消息响应函数里用PostQuitMessage(1)设置退出码为1,然后父进程中在子进程结束时用GetExitCodeProcess()获取子进程的退出码,结果却得不到正确的退出码1,可是将PostQuitMessage(1)改成exit(1)就能获取到了。。。
想知道这是什么原因 PostQuitMessage和exit有什么区别吗,为什么PostQuitMessage不行????求解释~~~~

最佳答案

查看完整内容

PostQuitMessage()是异步操作,该函数执行后,子进程并没有马上退出。 exit()是同步操作,该函数执行后,子进程马上退出。这是你为什么用exit可以得到子进程的退出码,而用PostQuitMessae()得不到子进程退出码的原因了。 如果你要用PostQuitMessage(),加上以下代码试试: // 等待子进程的退出 WaitForSingleObject(hChild, INFINITE); // 获取子进程的退出码 DWORD dwExitCode=-1; GetExitCodeProce ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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);

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表