0

我正在尝试在 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)意思以及如何将其写为函数指针的类型?

谢谢。

4

1 回答 1

0

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

正确的代码应该是:

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

感谢您如此迅速地提供帮助!

于 2013-06-28T15:17:42.560 回答