11

VisualStudioに.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 に答える