在C++/CLI的本地类中包含托管类成员变量的方法

时间:2022-10-15 04:23:13

使用gcroot可以实现在 C++/CLI的本地类中包含托管类成员变量,示例代码如下:

include<vcclr.h>   // 必须包含vcclr.h头文件
//托管类中传入
A^ a = gcnew A();
gcroot<A^> *pA = new gcroot<A^>();
*pA = a;
B *b = new B(pA);  //c++类

//非托管类中还原
void *ptr = pA;
gcroot<A^> *m_pA = (gcroot<A^> *)ptr;
(*m_pA)->FuncA(); //可调用A类方法;