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);
int (__cdecl **func)()
是编译器最接受的形式。一些编译器接受int __cdecl (**func)(int)
和int (**__cdecl func)(int)
甚至是int (*__cdecl *func)(int)
。 Clang接受所有3种形式并将其正确解释为类型int ((**))(int) __attribute__((cdecl))