在 ProcessExit 处理程序中检索退出代码?

Retrieving exit code in ProcessExit handler?

我正在编写一个小的 C++/CLI 应用程序,它会调用很多库。其中一些内部至少有一个 exit(xyz),我通过处理 AppDomain.ProcessExit() 来捕获它。工作正常。由于对 exit(...) 的调用已经完成,我想检索传递给此函数的退出代码。

我的问题是,在进程完全退出之前,退出代码似乎不可用,当然,在我的处理程序中,进程不是 "completely" terminated/exited。例如,我试过:

int ec = System::Diagnostics::Process:GetCurrentProcess()->ExitCode;

但是我遇到了一个例外。另外,似乎 API Win32 GetExitCodeProcess() 会 return 给我一个 STILL_ACTIVE 错误???我希望这个值是 registered/accessible 某处?

有什么想法吗?我 运行 正在使用 Win 7 和 Win 10。在此先感谢您的帮助。

System::Environment::ExitCode;

ProcessAppDomainEnvironment...我错过了这个!我希望我的 question/answer 有一天能帮到别人!

我以前使用批处理文件完成过此操作。

我创建了一个名为 runprogram.cmd 的文件(如果需要,您可以创建自己的名称)并将以下内容放入其中:-

@echo off

"programname.exe"

echo %errorlevel%

@echo on

pause

将 programname.exe 替换为您的 exe 名称。

双击文件运行。