未签名的 WINAPI 函数的正确函数指针是什么?

What is the correct function pointer for an unsigned WINAPI function?

我有一个这样声明的函数:

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 *)' ".

我试过其他语法,但似乎都不对,他不喜欢WINAPI这个词。

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

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

unsigned (WINAPI *pointerF) (void*)
 auto pointerF = &searchSTR;

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