未签名的 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 年代的代码。编译器已经知道正确的类型。
我有一个这样声明的函数:
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 年代的代码。编译器已经知道正确的类型。