このプログラムがメッセージボックスを正しく表示するのに、エラーレベルを設定しないのはなぜですか?
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
ます。
x64、x86、およびユニコードとMBCSのコンパイルオプションの両方を試しました。すべて0
エラーレベル/ステータスコードとして表示されます。