J'essaie de créer un programme helloworld en utilisant uniquement des bibliothèques masm et masm32. Voici l'extrait de code:error LNK2001: symbole externe non résolu _MessageBox
.386
.model flat, stdcall
option casemap :none
extrn MessageBox : PROC
extrn ExitProcess : PROC
.data
HelloWorld db "Hello There!", 0
.code
start:
lea eax, HelloWorld
mov ebx, 0
push ebx
push eax
push eax
push ebx
call MessageBox
push ebx
call ExitProcess
end start
Je suis en mesure de monter cela en utilisant masm:
c:\masm32\code>ml /c /coff demo.asm
Microsoft (R) Macro Assembler Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
Assembling: demo.asm
Cependant, je ne peux pas lier:
c:\masm32\code>link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user
32.lib demo.obj
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
demo.obj : error LNK2001: unresolved external symbol _MessageBox
demo.obj : error LNK2001: unresolved external symbol _ExitProcess
demo.exe : fatal error LNK1120: 2 unresolved externals
J'inclus les libs lors de la liaison, alors je ne sais pas pourquoi il dit encore des symboles non résolus?
MISE À JOUR:
c:\masm32\code>link /subsystem:windows /defaultlib:kernel32.lib /defaultlib:user
32.lib demo.obj
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
demo.obj : error LNK2001: unresolved external symbol [email protected]
demo.exe : fatal error LNK1120: 1 unresolved externals
MISE À JOUR 2: Code de travail final!
.386
.model flat, stdcall
option casemap :none
extrn [email protected] : PROC
extrn [email protected] : PROC
.data
HelloWorld db "Hello There!", 0
.code
start:
lea eax, HelloWorld
mov ebx, 0
push ebx
push eax
push eax
push ebx
call [email protected]
push ebx
call [email protected]
end start
Merci! Cela a résolu l'une des erreurs de lien, mais pas l'autre .. voir mise à jour – Jumbo
Bon point, voir mon édition. –
Génial! a parfaitement fonctionné maintenant. Je me sens comme un tel n00b - pouvez-vous suggérer des docs/livres où je peux choisir tous ces trucs? MSDN est trop difficile à explorer lorsque vous êtes novice. – Jumbo