Я хочу получить код выхода моей учебной программы сборки (используя masm32 и ссылку). Это работало нормально, я набирал echo %errorlevel%
и отображал мой код выхода, который я набрал после invoke ExitProcess
. Теперь это больше не работает. Я использую VirtualBox на хосте OpenSuse 12.1 и Windows Vista Home Premium в качестве гостя. Я искал ответы, но потерпел неудачу. Большинство жалоб касаются использования командного файла, а это не то, что я пытаюсь сделать. Вот простая программа
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? любая информация с благодарностью.