我创建的应用程序与Marmalade SDK中的示例类似。然后我尝试将IwUIController派生类移动到单独的文件.h / .cpp中以稍微清理代码但每次尝试访问任何IwUIElement时都会崩溃?例如:
CIwUIImage* image = IwSafeCast<CIwUIImage*>(pScreen->GetChildNamed("Image"));
pScreen声明为
static CIwUIElement *pScreen;
然后在main()中:pScreen = CIwUIElement :: CreateFromResource(“Screen”);
这些崩溃的原因是什么? Controller类是否需要与main()位于同一个文件中?我试图调试,指针似乎正确传递。
答案 0 :(得分:0)
不确定它真的算作答案,但我没有足够的stackoverflow声誉来发表评论; - )
如果您已经将C ++代码分成两个文件,那么我会认真检查#include和其他声明在新的两个文件中是否与原始文件中的相同。 10次中有9次,我的经验是因为某些原因不一样。实际上,值得检查的一个特定问题是结构或类只在一个文件中被部分声明(例如前向声明)并且已经丢失了它的父级。
话虽如此,作为造物主,说出了崩溃的症状是什么?这可能是IwSafeCast失败的动态转换吗?