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

それが本当に答えとして数えられるかどうかはわかりませんが、どうやらコメントするのに十分なスタックオーバーフローの評判がありません;-)

2 つのファイルに分割するまで正常に動作する C++ コードがある場合は、新しい 2 つのファイルで #include とその他の宣言が元のファイルと同じであることを真剣に確認します。10 回中 9 回、私の経験では、何らかの理由で何かが同じではないということです。実際に確認する価値のある特定の問題の 1 つは、構造体またはクラスが 1 つのファイルで部分的にしか宣言されておらず (前方宣言など)、その親が失われていることです。

そうは言っても、創造主として、墜落の兆候は何だったとおっしゃいましたか? これはおそらく IwSafeCast の動的キャストの失敗でしょうか?

于 2013-07-03T05:52:58.353 に答える