对于未签名的WINAPI函数,什么是正确的函数指针

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

本文关键字:函数 指针 什么 于未签 WINAPI      更新时间:2023-10-16

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

unsigned WINAPI searchSTR(void *j);

我需要一个指向这个函数的指针。我的想法是:

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

但有一个错误:

"1错误C2440:'=':无法从'unsigned int(__stdcall*((void*('转换到"unsigned int(__cdecl*((void*("。

我试过其他的sintax,但似乎没有什么是正确的,他不喜欢WINAPI这个词。

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

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

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

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