C ++定义函数指针

时间:2013-06-28 02:56:16

标签: c++ function pointers

我正在尝试在c ++中创建一个指向另一个函数的函数指针。

这是我到目前为止所做的:

LONG (*function)(LPSTR,LPVIPERVAR4,LONG)=&CWilExtender::DllVarHandler;

当我尝试编译程序时,我收到此错误:

.\MyExtender.cpp(132) : error C2440: 'initializing' : cannot convert from
'LONG (__thiscall CWilExtender::* )(LPSTR,LPVIPERVAR4,LONG)' to
'LONG (__cdecl *)(LPSTR,LPVIPERVAR4,LONG)'
        There is no context in which this conversion is possible

我不知道DllVarHandler是如何定义的,我不知道如何重现函数指针的类型。

如何更改(_cdecl *)以匹配(__thisscall CWilExtender::*)

具体来说,LONG (__thiscall CWilExtender::* )(LPSTR,LPVIPERVAR4,LONG)是什么意思,我怎么把它写成函数指针的类型?

感谢。

1 个答案:

答案 0 :(得分:0)

感谢@OliCharlesworth和@ user814628的评论,我解决了我的问题。

正确的代码应该是:

LONG (CWilExtender::* function)(LPSTR,LPVIPERVAR4,LONG)=&CWilExtender::DllVarHandler;

感谢你们这么快帮忙!