为什么此程序正确显示消息框,但未设置错误级别?
int APIENTRY _tWinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPTSTR lpCmdLine,int nCmdShow) { MessageBox(NULL,_T("This should return 90 no?"),_T("OK"),MB_OK); return 90; }
我将上面的代码编译成名为a.exe的可执行文件.我在命令提示符下执行了此操作:
c:\> a.exe (message Box is displayed,I press ok) c:\> echo %ERRORLEVEL% 0
如果我使用exit(90),我会得到相同的结果;就在返回之前.它仍然说0.
我也尝试通过CreateProcess启动程序并使用GetExitCodeProcess获取结果,但它也向我返回0.我做了错误检查以确保它全部正确启动.
我最初在一个更复杂的程序中看到了这个问题所以我做了这个简单的程序来验证问题.结果是相同的,两个具有WinMain的程序始终返回0.