BlackGoddess a écrit :
ca paraît pas (corrigez moi si je me trompe
WINAPI, CALLBACK etc correspond a __fastcall, __stdcall, et d'autres qui précisent l'en-tête de la fonction : si c'est l'appelant ou l'appelé qui s'occupent de la pile (me semble que ca gere d'autres choses)
|
C'est à peu près ca oui. Elles changent également le mangling (connais pas le terme français) de la fonction, et l'ordre dans lequel les arguments sont passés.
La majorité des fonctions de l'API Win32 sont __stdcall (PASCAL, WINAPI, CALLBACK, c'est pareil), la différence entre __fastcall et autres :
__stdall
- les arguments sont passés de droite à gauche
- la fonction appelée s'occupe du stack
- impossible de faire des varargs (...), je suppose
__cdecl
- "mode" par défaut en C++
- arguments passés de droite à gauche
- la fonction appelante s'occupe du stack (varargs possible)
__fastcall
- de droite à gauche, sauf les deux premiers arguments de 32-bit ou moins qui sont passés via les registres
- stack géré par la fonction appelée
__thiscall
- pour les méthodes
- on peut pas le spécifier soit meme..
Voila, j'espere que ca t'éclaire un peu.
Edit: souligner un truc avec des underscores c'est bof
Message édité par Ashe2 le 05-09-2003 à 09:12:57