我想制作一些C++类的C++/CLI包装器。
问题是,我希望ref类使用c++对象的引用来启动:
A (A& a);
只要它在同一个组件中并在同一项目中使用,它就可以正常工作。
但是,当我试图从另一个项目引用该项目,并通过引用该项目中的对象来启动ref类时,它将无法正确识别类型,也无法识别正确的构造函数。
有什么解决这个问题的想法吗?
我认为在这种情况下,您将无法使用对C++对象的引用,但您可以通过将指针存储在IntPtr
中,然后使用static_cast
检索来跨越程序集边界传递指向C++对象的指针。
class nativeA; // Pre declaration
A (IntPtr a)
{
nativeA * nativePtr = static_cast<nativeA*>(a.ToPointer());
// Do something with nativeA
}