Pointeur de fonction et convention d’appel

float __stdcall (*pFunc)(float a, float b) = (float (__stdcall *)(float,float))0x411280; 

Comment déclarer un pointeur de fonction avec une convention d’appel? Ce qui précède me donne une erreur.

L’astuce consiste à placer le __stdcall entre parenthèses comme ceci:

 float (__stdcall *pFunc)(float a, float b) = (float (__stdcall *)(float,float))0x411280; 

Bien sûr, il est recommandé d’utiliser un typedef à la place, mais le même truc s’applique:

 typedef float (__stdcall *FuncType)(float a, float b); 

__fastcall est l’optimisé (convention d’appel le plus rapide) mais n’est pas utilisé pour une raison inconnue

Essayer:

 int (__fastcall *myfunction)(int,float);