__stdcall ? __fastcall ? Kesako ? [Résolu]

Signaler
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
-
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
-
Bonjour ! J'aimerais juste savoir à quoi correpondent tous les "trucs" comme __stdcall, __fastcall... Est-ce que quelqu'un connait ?

4 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
cdecl : tous params sur pile, appelant dépilera.
__stdcall : tous params sur pile, fonction dépilera.
__fastcall : les 2 premiers params par registre (ECX puis EDX), le reste sur pile, fonction dépilera. Ceci n'est que le cas 'général' du __fastcall mais c'est plutot à étudier au cas par cas si pas l'habitude (et même si...) car il y a de nombreux cas particuliers.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Il y a d'autres différences induits par les conventions d'appel (comme la décoration des noms de fonction)

http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vccore/html/_core_.2f.gd.2c_2f.gr.2c_2f.gz.asp
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
C'est certain mais pas trop important tant que ça reste dans le même prog sur le même compilo, on utilise les fonctions par leur nom et le compilo les trouve.
Si c'est des fonctions en DLL pour différents langages alors __stdcall et export en C standard et ainsi jamais de problème.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Ok merci ! Au moins je ne mourrais pas idiot... :)