Windows控制台应用程序(C ++)具有错误的退出代码

时间:2014-01-16 10:33:18

标签: c++ windows console

我有一个使用boost单元测试框架的windows控制台应用程序,而main()在一个相当简单的退出(ret)中结束,其中ret是来自boost框架的返回。

运行一个例子我看到ret为201,但是调试器和其他人报告的exe返回代码是0.什么可能导致返回代码与exit()的参数不同?

感谢。

1 个答案:

答案 0 :(得分:0)

如果无法提供代码,那么可以建议的是将退出回调与std::atexit()连接起来并使用来自here的hack来查看回调被调用的时间是否为退出值仍然与main()中的相同。请记住,虽然您无法使用return,因为它不会设置值,因此请使用exit()调用替换它。此外,您将只能看到自己构建的DLL的返回代码并添加黑客。

另外,你可以调用GetExitCodeProcess(),我不知道如果调用内部行为并退出回调,很可能你会获得STILL_ACTIVE值,但仍然值得一试。