我正在尝试在Windows上使用汇编进行编程,但这非常痛苦,我正在尝试制作一个简单的程序,在完成时返回退出代码,但是(与Linux相反)没有关于系统调用的文档Windows 代码。
因此,我直接研究如何做到这一点,但几乎没有任何信息,我读过为了进行此系统调用,我需要包含来自诸如 kernel32 或 User32 之类的库的函数,但我不能将它们链接到我的程序中,因为所有这些库都是 .dll 而不是 .lib/.a 并且链接器显然会向我抛出这些库不存在的错误,下一个代码是(唯一出现在这个主题是这个视频)我从视频中逐行复制了:
global _main
extern _MessageBoxA@16
section .text
_main:
push 0
push 0
push hello
push 0
call _MessageBoxA@16
hello:
db "Hello, World", 0
所有这些都使用 NASM 汇编器和 Visual Studio 构建工具环境中的下一个命令'vcvars32':'link /entry:main /subsystem:windows main.obj user32.lib'
这就是我所尝试的,我需要知道如何链接这些库,如何从中导入函数,如何进行系统调用。所有这些只是为了为没有功能的程序制作退出代码(或者在上面的代码中创建消息框)
解决方案是下载 SDK 并从那里获取库