繁体   English   中英

clr如何使用本机c ++ dll的引用'&'参数调用函数?

[英]How clr calls functions with reference '&' parameters of native c++ dll?

我有一个本地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);
        }
    }
}

但是它不能被编译,因为

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

不可以吗 我能做什么? 谢谢!

在命名的c ++中,您只能使用指向本机类的指针。 因此,您可以尝试使用指向指针的指针,或者仅对IExport使用包装器。 我认为,更好,更合理地使用包装器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM