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 に答える