clr如何通过引用来调用函数'&'原生c ++ dll的参数?

时间:2017-04-10 08:55:17

标签: c++ clr

我有一个原生的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);
        }
    }
}

但它无法编译,因为

  

托管类成员中的对象无法转换为本机引用

不允许吗?我能做什么? 谢谢!

1 个答案:

答案 0 :(得分:0)

在namaged c ++中,您只能使用指向本机类的指针。因此,您可以尝试使用指针指针或只使用IExport的包装器。我认为,使用包装器更好,更容易理解。