- 597 名前:デフォルトの名無しさん [2007/05/02(水) 16:48:27 ]
- 初歩的な質問で申し訳ありません。
VC++でダイアログベースのプログラムの作成中です。 プロシージャ内でクラスを宣言して使用したいのですが、エラーになります。 たとえば以下のようなプログラムのがあるとします(Fooクラスが別途存在します) LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_INITDIALOG: Foo foo; return FALSE; case WM_HOGE: foo.hoge(); default: return FALSE; } return TRUE; } この場合、以下のエラーが出力されます 'foo' の初期化が 'case' ラベルによって行われませんでした。 調べた結果、WM_HOGE内でFooクラスの宣言がなされてない(初期化がされていない)のでエラーになっている、ということはわかりました。 ここで質問なのですが、Fooクラスの宣言というのは一般的にどこで行うべきなのでしょうか? プロシージャの最初のswitchの外で宣言してしまってもいいものなのでしょうか。
|

|