Call API Windows [Résolu]

Signaler
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Pourquoi il faut mettre absolument dword ptr avant le nom d'une fonction pour appeler une API de Windows?

3 réponses

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

parceque tu va chercher l'adresse de la fonction dans une cellule memoire et que ton adresse memoire n'as pas de taille et donc, il faut la preciser. ( ca pourrait etre call word[FonctionAPI] )

sinon, tu cree une macro.
je sais pas ce que ca donne en TASM mais ca doit etre kif MASM:

callAPI MACRO fName
call dword ptr [fName]
ENDM
et donc, dans le prog, on aura plus de dword ptr:
push 0
callAPI ExitProcess

sache que tout acces memoire doit avoir une taille definie.

Pour certaines instructions, elle est explicite:
mov eax,[edx] eax est un dword donc [edx] aussi.

Pour d'autres, ce n'est pas défini:
mov [edx],0 <- ICI, faut préciser.
call [edx] <- idem.

Pour d'autres, c plus ambigue: ( nasm )
cmp dword [edx],byte -1
pour ce cas, byte -1 sera codé sur 8 bits mais la valeur sera testée sur 32 bits. ( equivalent movsx )

@++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
vecchio56> vois que ceci est a mettre uniquement en asm inline dans le C, sur MASM pas besoin.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Merci messieurs