我想获得我的教程汇编程序的退出代码(使用 masm32 和链接)。它工作正常,我会输入 echo %errorlevel%
,它会显示我在之后输入的退出代码invoke ExitProcess
。现在它不再起作用了。我在 OpenSuse 12.1 主机和 Windows Vista Home Premium 上使用 VirtualBox 作为来宾。我一直在寻找答案,但没有找到答案。大多数抱怨都是关于使用批处理文件,这不是我想要做的。这是简单的程序
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程序的退出代码在哪里?任何信息都非常感谢。