构造函数中的C ++ / CLI非托管指针

时间:2011-05-22 11:49:27

标签: c++-cli unmanaged managed

我想制作一些C ++类的C ++ / CLI包装器。

问题在于我希望使用c ++对象的引用启动 ref class

A (A& a);

只要它在同一个组件中并在同一个项目中使用,就可以正常工作。

但是当我尝试从另一个项目引用该项目,并从那里启动一个引用对象的ref-class时,它将无法正确识别这些类型,并且无法识别正确的构造函数。 / p>

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

我认为你不能在这个实例中使用对C ++对象的引用,但你可以通过将它存储在IntPtr中然后检索来跨越程序集边界传递指向C ++对象的指针它使用static_cast

class nativeA; // Pre declaration

A (IntPtr a)
{
    nativeA * nativePtr = static_cast<nativeA*>(a.ToPointer());
    // Do something with nativeA
}