【发布时间】:2012-03-25 16:10:47
【问题描述】:
我一直在使用 NASM 在 Windows 中进行一些 x86 编程,但我遇到了一些困惑。我很困惑为什么我必须这样做:
extern _ExitProcess@4
特别是我对“_”和“@4”感到困惑。我知道“@4”是堆栈的大小,但为什么需要它?当我用十六进制编辑器查看 kernel32.dll 时,我只看到“ExitProcess”而不是“_ExitProcess@4”。
我也很困惑为什么 C 函数不需要下划线和堆栈大小,例如:
extern printf
为什么 C 函数不需要修饰?
我的第三个问题是“我应该以这种方式使用这些功能吗?”现在我正在链接实际的 dll 文件本身。
【问题讨论】:
标签: windows dll assembly x86 nasm