Win32API質問箱 Build52at TECH
Win32API質問箱 Build52 - 暇つぶし2ch597:デフォルトの名無しさん
07/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の外で宣言してしまってもいいものなのでしょうか。


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