无符号WINAPI函数的正确函数指针是什么?

时间:2015-08-20 08:32:32

标签: c++ winapi function-pointers

我以这种方式声明了一个函数:

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这个词。

你能建议我正确的语法吗?也许这很容易,但我被阻止了!感谢所有

2 个答案:

答案 0 :(得分:5)

WINAPI宏扩展为__stdcall,这是与默认__cdecl不同的调用约定。您需要使用调用约定标记您的函数指针:

unsigned (WINAPI *pointerF) (void*)

答案 1 :(得分:0)

 auto pointerF = &searchSTR;

停止编写1990年的代码。编译器已经知道正确的类型。