VisualStudioに.NETフォームとネイティブコードがあります。問題は次のとおりです。次のように、ネイティブコードで.NETフォームのグローバルインスタンスを宣言できません。
Editor^ maineditor;
それは私にこの問題を与えます:
error C3145: 'EditorEntry' : global or static variable may not have managed type 'Cube3D::Editor ^'
VisualStudioに.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();