【GUIライブラリ】wxWindowsでのひょーん at TECH
[2ch|▼Menu]
351:灰 ◆v/.u/aNe9w
03/07/20 00:03
bcc32 で samples/bombs のデバッグ版が動かない理由がわかりますた……。

理由:
wxWindows では実行時型情報を提供する為の仕組みとして、
wxClassInfo クラスと、マクロ DECLARE_DYNAMIC_CLASS(foo) と
IMPLEMENT_DYNAMIC_CLASS(foo, bar) を提供していまつ。
URLリンク(www.wxwindows.org)

このマクロはそれぞれ、

static wxClassInfo sm_classなんちゃら;
virtual wxClassInfo *GetClassInfo() const { return &MainFrame::sm_classなんちゃら; }


wxObject* wxConstructorForなんちゃら() { return new なんちゃら; }
wxClassInfo MainFrame::sm_classなんちゃら(
 "なんちゃら", "wxFrame", 0
 , (int) sizeof(MainFrame), (wxObjectConstructorFn) wxConstructorForなんちゃら
);

に展開されます。

んで、wxClassInfo はコンストラクタ(src/common/object.cpp)で
各クラス内のスタティックな sm_classなんちゃら のポインタをチェインとして
登録するような仕組みになってます。

んで、wxWindows::msw のデバッグを有効にしている場合、
内部の WinMain にあたる wxEntry の最初の方で wxClassInfo のチェインをハッシュテーブルに登録。
更に、そのテーブルを元にデータの正当性(依存関係)のチェックを行ってます。

bcc32 は、その正当性チェックの部分で弾かれてしまっています。



次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5132日前に更新/338 KB
担当:undef