Ссылка на Kernel32.lib в ассемблере

Я начал изучать ассемблер сегодня и провел много тестов на Linux, которые работали очень хорошо! Я перешел на свой компьютер и начал пытаться написать здесь. Я столкнулся с проблемой при попытке вызвать внешние функции (которая снова работала нормально в linux), где я получил LINK 2001 Unresolved External error, сообщающий, что WriteConsoleA не определен при компиляции с nasm:

nasm -f win32 test.asm -o test.obj

и с cl.exe:

cl test.obj /link libcmt.lib kernel32.lib

Я получаю эти ошибки:

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

Ассамблея:

extern ExitProcess, GetStdHandle, WriteConsoleA
NULL equ 0
STD_OUTPUT_HANDLE equ -11
section .data
   msg db "Hello world!",0xa
msgLen equ $-msg
section .bss
    dummy resd 1
section .text
    global _main
_main:
    push STD_OUTPUT_HANDLE
    call GetStdHandle
    push NULL
    push dummy
    push msgLen
    push msg
    push eax
    call WriteConsoleA
    push NULL
    call ExitProcess

Скопировано почти точно изВот, Любая помощь высоко ценится! Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос