函数指针和调用约定

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

如何用调用约定声明一个函数指针? 上面给了我一个错误。

诀窍是将__stdcall放在括号内,如下所示:

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

当然,建议您使用typedef,但同样的技巧适用:

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

__fastcall是优化的(最快的调用约定),但未用于未知原因

尝试:

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