函数指针错误

C++ Function pointer error

本文关键字:错误 指针 函数      更新时间:2023-10-16

我正在努力使源代码工作

extern "C" {
    typedef LRESULT (__stdcall *NRI_PM_CALLBACK)(WPARAM, LPARAM);
}
LRESULT OnPaymentManagerMessage(WPARAM wParam, LPARAM lParam)
{
    int type = (wParam >> 4) & 0x0F;
    int device = wParam & 0x0F;
    //cstr.Format("** Msg **[ %d %d %d ]", type, device, lParam);
    //handle message here
    return lParam;
}
NRI_PM_CALLBACK callback = &OnPaymentManagerMessage; //error on this line 

错误:类型为"LRESULT (*)(WPARAM WPARAM, LPARAM LPARAM)"的值不能用于初始化类型为"NRI_PM_CALLBACK"的实体

我在Visual Studio Express 2012中运行这个

知道为什么吗?

谢谢

使OnPaymentManagerMessage() a __stdcall功能:

LRESULT __stdcall OnPaymentManagerMessage(WPARAM wParam, LPARAM lParam) 
/* ... */

__cdecl是编译器的默认值(尽管编译器选项可以改变它)。