Probleme de link [nasm + alink]

cs_EEkaMouse Messages postés 2 Date d'inscription dimanche 6 avril 2003 Statut Membre Dernière intervention 29 avril 2003 - 14 avril 2003 à 01:31
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009 - 24 juil. 2005 à 02:34
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

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
14 avril 2003 à 23:40
Salut!
Je cherche é comprendre comment utiliser alink, pourrais tu me donner la syntaxe de la ligne de commande???
Merci
0
gblade Messages postés 85 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 19 mai 2003
16 avril 2003 à 22:42
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.
0
cs_PierreF Messages postés 33 Date d'inscription mercredi 15 mai 2002 Statut Membre Dernière intervention 24 octobre 2003
21 avril 2003 à 10:30
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 []
0
cs_EEkaMouse Messages postés 2 Date d'inscription dimanche 6 avril 2003 Statut Membre Dernière intervention 29 avril 2003
29 avril 2003 à 23:31
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
24 juil. 2005 à 02:34
Ou qu'on pourrait avoir alink je ne le trouve pas sur google
0
Rejoignez-nous