我正在创建一个依赖于众多 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 *”