0

我创建了一个与 Marmalade SDK 中的示例类似的应用程序。然后我尝试将 IwUIController 派生类移动到单独的文件 .h/.cpp 中以稍微清理代码,但每次尝试访问任何 IwUIElement 时都会崩溃?例如:

CIwUIImage* image = IwSafeCast<CIwUIImage*>(pScreen->GetChildNamed("Image"));

pScreen 被声明为

static CIwUIElement *pScreen;

然后在 main(): pScreen = CIwUIElement::CreateFromResource("Screen");

这些崩溃的原因是什么?Controller 类是否需要与 main() 位于同一文件中?我试图调试并且指针似乎已正确传递。

4

1 回答 1

0

不确定它是否真的算作一个答案,但我显然没有足够的 stackoverflow 声誉来发表评论;-)

如果在将其拆分为两个文件之前,您的 C++ 代码运行良好,我会认真检查新的两个文件中的 #include 和其他声明是否与原始文件中的相同。10 次中有 9 次,我的经验是,由于某种原因,有些东西是不一样的。实际上,一个值得检查的具体问题是结构或类在一个文件中仅部分声明(例如前向声明)并且失去了其父级。

话虽如此,作为造物主,说坠机的症状是什么?这可能是 IwSafeCast 失败的动态转换失败吗?

于 2013-07-03T05:52:58.353 回答