1

我目前有一个 main.cpp 和一个 editor.h

editor.h 是托管代码,main.cpp 是本机代码。

在 main.cpp 我通常会运行一个新的编辑器实例:

Application::Run(gcnew Editor());

但是在 main.cpp 的另一个地方我想从那个表单中提取一个值,所以我怀疑我是这样做的:(main.cpp)

....
Editor^ EditorEntry;
..
..
EditorEntry::Value1....
EditorEntry::Panel1->Name...

int main(..)
{
...
Application::Run(gcnew EditorEntry());
...
}

但我不能,得到这个:

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

那么我会/应该怎么做呢?

4

1 回答 1

0

需要读取编辑器值的代码本身是否需要在本机代码中?它可能在另一个托管类中吗?例如,您可以将编辑器传递给此类,以便它可以读取其属性。

int main(..)
{
    EditorEntry^ editor = gcnew EditorEntry(); 
    EditorObserver^ observer = gcnew EditorObserver(editor);

    Application::Run(editor);
    ...
}

EditorObserver将在其构造函数中保留一个字段EditorEntry,并能够访问其公共接口、监听其事件等。

在面向对象的应用程序中,无论如何您都不会在 main.cpp 中放置太多代码。

于 2012-08-30T18:26:13.300 回答