簡體   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