使用cli中的引用参数调用c ++函数

时间:2010-03-12 03:33:57

标签: c++-cli pass-by-reference

非托管函数(纯c ++,如果重要的话):

 void fooC(float& result);

我将包装器定义为(托管包装器,c ++ \ cli):

void foo(float% result) //managed interface, need to pass result back to caller
{
      fooC(???);//how to call unmanaged function?
}

如何在包装器中传递引用参数?

1 个答案:

答案 0 :(得分:5)

您无法将跟踪引用转换为非托管引用或指针。当传递的float是对象中的一个字段时,垃圾收集器会造成破坏。你需要使用临时的:

  void foo(float% result) { 
    float temp;
    fooC(temp); 
    result = temp;
  }