0
我想在C++中創建一個函數指針指向另一個函數。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)
是什麼意思,我該如何寫這個函數指針的類型?
謝謝。
[C++函數成員指針]的可能的重複(http://stackoverflow.com/questions/17304659/c-function-member-pointer) –
該錯誤消息告訴你它期望的是什麼類型。 – tadman
在C++中,您可以使用虛擬方法,因此可以編寫易於閱讀的代碼並避免此問題。改爲使用和接口。 –