在C++类中声明C#全局变量需要用到关键字gcroot,如下例中调用了命名空间和类名均为USB7816的C#DLL程序。
#using "USB7816.dll"
class CUSB7816Manager{
public:
CUSB7816Manager();
~CUSB7816Manager();
public:
gcroot<USB7816::USB7816^> pUSB7816;
}
CUSB7816Manager::CUSB7816Manager()
{
pUSB7816 = gcnew USB7816::USB7816();
}
void CUSB7816Manager::GetDllInformation()
{
String ^str;
str = pUSB7816->Author;
MarshalString(str,strAuthor);
}