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);
}
}
}