我有一个原生的c ++ dll和一些带引用传递的函数
&安培;
void DestroyExportObj(IExport* &pExport)
{
pExport->Release();
pExport = nullptr;
}
这在本机c ++中正常工作。我在clr中包装了c ++
public ref class Class1
{
IExport* _inst;
...
void Class1::Release()
{
if (_inst != nullptr)
{
DestroyExportObj(_inst);
}
}
}
但它无法编译,因为
托管类成员中的对象无法转换为本机引用
不允许吗?我能做什么? 谢谢!
答案 0 :(得分:0)
在namaged c ++中,您只能使用指向本机类的指针。因此,您可以尝试使用指针指针或只使用IExport的包装器。我认为,使用包装器更好,更容易理解。