使用gcroot可以实现在 C++/CLI的本地类中包含托管类成员变量,示例代码如下:
#include<vcclr.h> // 必须包含vcclr.h头文件
//传入
A^ a = gcnew A();
gcroot<A^> *pA = new gcroot<A^>();
*pA = a;
void *ptr = pA;
B *b = new B(pA); //c++类
//还原
gcroot<A^> * m_pA = (gcroot<A^> *)pA;
(*m_pA)->FuncA(); //可调用A类接口;