Подтвердить что ты не робот

С++ объявляет управляемую переменную в собственном коде

У меня есть .NET-форма и собственный код в моей Visual Studio. Проблема в том, что я не могу объявить глобальный экземпляр моей .NET-формы в моем родном коде, например:

Editor^ maineditor;

Это дает мне эту проблему:

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

Ответ 1

Вместо использования глобальной статической попытки сделать ее статическим методом в типе контейнера

ref class ManagedGlobals {
  public:
  static Editor^ maineditor = nullptr;
};

Ответ 2

заверните дескриптор с помощью gcroot < > struct

gcroot<Editor^> maineditor;