多数の C++ 静的ライブラリに依存する C++/CLI ラッパー DLL を作成しています。一部の関数呼び出しでは、アンマネージ ポインターが渡されることを想定しています。適切に渡すにはどうすればよいですか?
また、他の関数は、「this ポインター」が void* として渡されることを想定しています。「これ」を渡す正しい方法は何ですか?
これが私のクラス定義です...
public ref class RTPClient
{
public:
RTPClient();
~RTPClient();
bool Connect();
void Disconnect();
private:
CIsmaClient* mClient;
};
問題のポインタが使用されている私の使用法は次のとおりです...
RTPClient::RTPClient():
mClient(NULL)
{
CIsmaClient::Create(&mClient, NULL, &AllocBuffer, &GetDataPointer, this);
}
&mClient と "this" を使用すると、次のコンパイラ エラーが発生します... 1>.\VBLoadSimulatorDll.cpp(40): エラー C2664: 'CIsmaClient::Create': パラメーター 1 を 'cli::interior_ptr' から ' に変換できませんCIsmaClient **' 1> with 1> [ 1> Type=CIsmaClient * 1> ]
1>.\VBLoadSimulatorDll.cpp(40): エラー C2664: 'CIsmaClient::Create': パラメーター 5 を 'VBLoadSimulator::RTPClient ^const' から 'VOID *' に変換できません