Ben*_*nny 4 c++-cli pass-by-reference
非托管函数(纯c ++,如果重要的话):
void fooC(float& result);
Run Code Online (Sandbox Code Playgroud)
我将包装器定义为(托管包装器,c ++\cli):
void foo(float% result) //managed interface, need to pass result back to caller
{
fooC(???);//how to call unmanaged function?
}
Run Code Online (Sandbox Code Playgroud)
如何在包装器中传递引用参数?
您无法将跟踪引用转换为非托管引用或指针.当传递的float是对象中的一个字段时,垃圾收集器会造成破坏.你需要使用临时的:
void foo(float% result) {
float temp;
fooC(temp);
result = temp;
}
Run Code Online (Sandbox Code Playgroud)