【发布时间】:2012-03-13 20:46:36
【问题描述】:
我想获取我的教程汇编程序的退出代码(使用 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程序的退出代码在哪里?非常感谢任何信息。
【问题讨论】:
标签: windows assembly masm masm32 errorlevel