【发布时间】:2012-07-28 15:58:31
【问题描述】:
好的,我正在使用 NASM 组装代码并与 Golink 链接。我一直在直接通过 DLL 使用 Windows API 调用和 C 调用。例如,kernel32.dll 代表 ExitProcess 和 msvcrt.dll 代表 printf。但是,当我尝试使用这样的装饰时,_ExitProcess@4 或 _printf golink 抱怨装饰并建议使用 /mix 标志。当我使用它时,Windows 抱怨输出文件不是有效的 win32 程序。当我不使用装饰品时,它工作得很好。谁能解释一下怎么回事?
例子:
extern printf
extern ExitProcess
;A bunch of code which isn't really important to this
然后是我的命令:
nasm -fwin32 test.asm
golink test.obj kernel32.dll msvcrt.dll /console /entry _start
【问题讨论】: