我有一个使用boost单元测试框架的windows控制台应用程序,而main()在一个相当简单的退出(ret)中结束,其中ret是来自boost框架的返回。
运行一个例子我看到ret为201,但是调试器和其他人报告的exe返回代码是0.什么可能导致返回代码与exit()的参数不同?
感谢。
答案 0 :(得分:0)
如果无法提供代码,那么可以建议的是将退出回调与std::atexit()连接起来并使用来自here的hack来查看回调被调用的时间是否为退出值仍然与main()
中的相同。请记住,虽然您无法使用return
,因为它不会设置值,因此请使用exit()
调用替换它。此外,您将只能看到自己构建的DLL的返回代码并添加黑客。
另外,你可以调用GetExitCodeProcess(),我不知道如果调用内部行为并退出回调,很可能你会获得STILL_ACTIVE
值,但仍然值得一试。