我以这种方式声明了一个函数:
unsigned WINAPI searchSTR(void *j);
我需要一个指向此功能的指针。我的想法是:
unsigned (*pointerF) (void*);
pointerF = &searchSTR;
但是有一个错误:
"1 error C2440: '=' : cannot convert from 'unsigned int (__stdcall *)(void *)' to 'unsigned int (__cdecl *)(void *)' ".
我尝试了其他的sintax,但似乎没有什么是正确的,他不喜欢WINAPI这个词。
你能建议我正确的语法吗?也许这很容易,但我被阻止了!感谢所有
答案 0 :(得分:5)
WINAPI
宏扩展为__stdcall
,这是与默认__cdecl
不同的调用约定。您需要使用调用约定标记您的函数指针:
unsigned (WINAPI *pointerF) (void*)
答案 1 :(得分:0)
auto pointerF = &searchSTR;
停止编写1990年的代码。编译器已经知道正确的类型。