Assembly 汇编程序不退出

Assembly 汇编程序不退出,assembly,Assembly,我试图在程序集中创建我的第一个可执行文件,但我遇到了一个问题,应用程序从未退出(我必须手动终止它)。 代码: 我使用NASM 2.13.01和ld.exe 2.28(在Windows 10上)编译它 我的朋友告诉我,它在他的电脑上也可以使用相同的NASM版本,但是LD2.24(Windows8) 是ld、Windows 10有问题还是我的代码错了?除了调用退出函数外,还有其他解决方法吗 感谢您的帮助从WinMain返回不会终止您的应用程序。很明显,你需要自己做这件事。还有另一个错误:C字符串必须

我试图在程序集中创建我的第一个可执行文件,但我遇到了一个问题,应用程序从未退出(我必须手动终止它)。 代码:

我使用NASM 2.13.01和ld.exe 2.28(在Windows 10上)编译它

我的朋友告诉我,它在他的电脑上也可以使用相同的NASM版本,但是LD2.24(Windows8)

是ld、Windows 10有问题还是我的代码错了?除了调用退出函数外,还有其他解决方法吗


感谢您的帮助

WinMain
返回不会终止您的应用程序。很明显,你需要自己做这件事。还有另一个错误:C字符串必须以NUL字节终止,因此您的
testString
应该这样定义:

testString:
    db "Test",0

是的,我粘贴错了,对不起。我用本教程编写了这段代码,为什么它不退出就在那里工作?@BOAKGP我不知道,我不会说波兰语。@BOAKGP:不同版本的Windows可能不会启动任何额外的线程,因此在
WinMain
返回时退出进程。好了,现在清楚了。感谢您的支持,可能还有更多详细信息或文档链接:
nasm -f Win32 -p first_exe.obj first_exe.asm
ld first_exe.obj -o first_exe.exe c:\Windows\System32\msvcrt.dll
testString:
    db "Test",0