相关疑难解决方法(0)

在汇编程序中链接到 Kernel32.lib

我今天开始学习汇编,并在 linux 上运行了许多测试,效果很好!我转移到我的电脑上并开始尝试在这里写一些。我在尝试调用外部函数时遇到了一个问题(这在 linux 上也能正常工作),我会得到 LINK 2001 Unresolved External 错误,告诉我在使用 nasm 编译后未定义 WriteConsoleA:

nasm -f win32 test.asm -o test.obj
Run Code Online (Sandbox Code Playgroud)

并使用 cl.exe:

cl test.obj /link libcmt.lib kernel32.lib
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

test.obj : error LNK2001: unresolved external symbol ExitProcess
test.obj : error LNK2001: unresolved external symbol GetStdHandle
test.obj : error LNK2001: unresolved external symbol WriteConsoleA
test.exe : fatal error LNK1120: 3 unresolved externals
Run Code Online (Sandbox Code Playgroud)

大会:

extern ExitProcess, GetStdHandle, WriteConsoleA
NULL equ 0
STD_OUTPUT_HANDLE equ -11
section .data
   msg db "Hello world!",0xa
msgLen equ $-msg
section …
Run Code Online (Sandbox Code Playgroud)

assembly winapi nasm

2
推荐指数
1
解决办法
2681
查看次数

标签 统计

assembly ×1

nasm ×1

winapi ×1