11

我的 Visual Studio 中有一个 .NET 表单和一个本机代码。问题是:我无法在本机代码中声明 .NET 表单的全局实例,如下所示:

Editor^ maineditor;

它给了我这个问题:

error C3145: 'EditorEntry' : global or static variable may not have managed type 'Cube3D::Editor ^'
4

3 回答 3

14

而不是使用全局静态尝试使其成为容器类型中的静态方法

ref class ManagedGlobals {
  public:
  static Editor^ maineditor = nullptr;
};
于 2012-07-10T18:24:17.783 回答
9

用 gcroot<> 结构包裹句柄

gcroot<Editor^> maineditor;
于 2016-03-30T14:24:19.417 回答
0

你有你的静态类(参考:可以在 C++ 中声明一个类是静态的吗?

ref class ManagedGlobals abstract sealed {
public:
    static Excel::Application^ xl;
};

现在只需引用该类

ManagedGlobals::xl = gcnew Excel::Application();
于 2017-01-10T15:49:11.190 回答