Probleme de link [nasm + alink]

Signaler
Messages postés
2
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
29 avril 2003
-
Messages postés
37
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
14 février 2009
-
Salut!

j'ai un problème au niveau de l'éditeur de lien.

j'ai un programme en *.obj dont la source est la suivante :

%include "..\inc\win32n.inc"

[EXTERN ExitProcess]

SECTION CODE USE32 CLASS=CODE
..start:

PUSH UINT NULL
CALL ExitProcess



on ne peut pas faire plus simple. Ca se compile sans erreur.

ensuite, vient l'édition de liens avec la commande :
alink.exe -oPE monprog.obj kernel32.lib

Là, j'ai le message suivant :
Loading file monprog.obj
Loading file kernel32.lib
1413 symbols
Loaded first linker member
matched Externs
matched ComDefs
Unresolved external ExitProcess

voyez la phrase en gras? je ne comprends pas.
le kernel32.lib, je l'ai piqué dans un paquetage masm parceque j'en ai pas trouvé d'autres.

En bref, ma question est :
- Y a t-il quelquechose qui m'échappe et qui vous saute aux yeux?
- Comment construire un fichier lib?

5 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Je cherche é comprendre comment utiliser alink, pourrais tu me donner la syntaxe de la ligne de commande???
Merci
Messages postés
85
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
19 mai 2003

Je n'utilise pas alink mais as-tu essayé d'assembler avec le nom complet de la fonction ? Avec la décoration je veux dire : _ExitProcess@4

Enfin, sinon je ne sais pas, essaie un autre linker, LINK de Microsoft (qui se trouve ds le package MASM32 ou avec VS) ou ilink32 de Borland vont très bien.
Messages postés
33
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
24 octobre 2003

tu peut contourner le problème (et faire des executable plus petit)
tu met

EXTERN ExitProcess
IMPORT ExitProcess kernel32.dll

;les deux ligne suivant sont equivalente a SECTION CODE USE32 CLASS=CODE
[SECTION CODE]
[BITS 32]

..start:

PUSH UINT NULL
CALL [ExitProcess] ;attention il faut mettre ExitProcess entre []
Messages postés
2
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
29 avril 2003

Salut!
Désolé de n'avoir pu vous remercier plus vite. Merci pour les réponses. Quand à alink, regarde la doc, car je n'ai pas la syntaxe en tête.
Messages postés
37
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
14 février 2009

Ou qu'on pourrait avoir alink je ne le trouve pas sur google