チュートリアルアセンブリプログラムの終了コードを取得したい(masm32とリンクを使用)。正常に機能%errorlevel%
していました。echoと入力すると、後に入力した終了コードが表示されinvoke ExitProcess
ます。今ではもう動作しません。OpenSuse 12.1ホストでVirtualBoxを使用し、ゲストとしてWindows VistaHomePremiumを使用しています。答えを探しましたが、足りませんでした。ほとんどの苦情はバッチファイルの使用に関するものですが、これは私がやろうとしていることではありません。これが簡単なプログラムです
hello_world.asm
.586
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
HelloWorld db "Hello World!", 0
.code
start:
invoke MessageBox, NULL, addr HelloWorld, addr HelloWorld, MB_OK
invoke ExitProcess, 2
end start
2を返すと思いますが、 echo %errorlevel%
0を返します。何か足りないものはありますか?ありがとう、そして私はこの質問が死ぬまで答えられたことをお詫びします。答えが見つかりません。
編集:実際、私は私の答えの一部を見つけました。を使用してリンクした場合にのみ機能し/SUBSYSTEM:CONSOLE
ます。使用する/SUBSYSTEM:WINDOWS
と常に0が返されます。これをどうすればよいかわかりません。Windowsプログラムの終了コードはどこにありますか?どんな情報でも大歓迎です。