Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
clr如何使用引用调用函数'&';本机c+的参数+;动态链接库? 我有一个本地C++ DLL,还有一些函数,带有引用传递< /P>_C++_Clr - Fatal编程技术网

clr如何使用引用调用函数'&';本机c+的参数+;动态链接库? 我有一个本地C++ DLL,还有一些函数,带有引用传递< /P>

clr如何使用引用调用函数'&';本机c+的参数+;动态链接库? 我有一个本地C++ DLL,还有一些函数,带有引用传递< /P>,c++,clr,C++,Clr,& 这在原生C++中是正确的。我用CLR < /P>包裹C++ public ref class Class1 { IExport* _inst; ... void Class1::Release() { if (_inst != nullptr) { DestroyExportObj(_inst); } } } 但它无法编译,因为 托管类成员中的对象无法转换为本机引用 这是不允许的

&

这在原生C++中是正确的。我用CLR < /P>包裹C++

public ref class Class1
{
    IExport* _inst;
    ...
    void Class1::Release()
    {
        if (_inst != nullptr)
        {
            DestroyExportObj(_inst);
        }
    }
}
但它无法编译,因为

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

这是不允许的吗?我能做什么?
谢谢大家!

>在命名C++中,只能使用指向本地类的指针。所以,您可以尝试使用指针到指针,或者只使用IExport的包装器。我认为,使用包装器更好、更容易理解。

试试C语言中的
IExport**pExport
,想象一下它写为
DestroyExportObj(void**pExport)
,所以
DestroyExportObj(ref IntPtr pExport)
不能将“cli::interior\u ptr”转换为“IExport**”无法将
cli::interior\u ptr
转换为
IExport**
public ref class Class1
{
    IExport* _inst;
    ...
    void Class1::Release()
    {
        if (_inst != nullptr)
        {
            DestroyExportObj(_inst);
        }
    }
}