我的 Visual Studio 中有一个 .NET 表单和一个本机代码。问题是:我无法在本机代码中声明 .NET 表单的全局实例,如下所示:
Editor^ maineditor;
它给了我这个问题:
error C3145: 'EditorEntry' : global or static variable may not have managed type 'Cube3D::Editor ^'
我的 Visual Studio 中有一个 .NET 表单和一个本机代码。问题是:我无法在本机代码中声明 .NET 表单的全局实例,如下所示:
Editor^ maineditor;
它给了我这个问题:
error C3145: 'EditorEntry' : global or static variable may not have managed type 'Cube3D::Editor ^'
而不是使用全局静态尝试使其成为容器类型中的静态方法
ref class ManagedGlobals {
public:
static Editor^ maineditor = nullptr;
};
用 gcroot<> 结构包裹句柄
gcroot<Editor^> maineditor;
你有你的静态类(参考:可以在 C++ 中声明一个类是静态的吗?)
ref class ManagedGlobals abstract sealed {
public:
static Excel::Application^ xl;
};
现在只需引用该类
ManagedGlobals::xl = gcnew Excel::Application();