TOP今月刊既刊I/OサポートQ&AWeb I/O通販お問い合わせ
 Q&A > ゲーム作りではじめるMFC 書名検索: 詳細検索...
Q&A一覧
Q

サンプルでエラーが出る

「ゲーム作りではじめるMFC」の本の
http://www.kohgakusha.co.jp/support/game_mfc/index.html
のPazul1.ZIPですが、
WindowxXP HomeEdition
Visual C++6.0
で動かした時に
pazul1.exeのファイルが動きません。
0xC000005 : Access Violation
が発生します。
ソースをりビルドし直して
Visual C++6.0の「デバッグの開始」で動かすと
_AFXWIN_INLINE HGDIOBJ CGdiObject::GetSafeHandle() const
{ return this == NULL ? NULL : m_hObject; }
の下の行の位置でカーソルが点滅し、Access Violation
となります。
何がおかしいのでしょうか。
2006年10月06日受付
A

編集部の「Visual Studio .NET 2002」と「Windows XP Pro SP2」の環境でエラーになることを確認いたしました。
とりあえず、「pazul1View.cpp」のコードを以下のように変更することで、エラーを回避できるようです。

「pazul1View.cpp」の375〜376行目の2行と388〜389行目の2行を削除してください。
----------------375〜376行目-------------------------
  myFont.CreateFontIndirect(&myFontSet);
  oldFont=pDC->SelectObject(&myFont);
----------------388〜389行目-------------------------
 pDC->SelectObject(oldFont);
 myFont.DeleteObject();
-----------------------------------------------------

またエラーとは直接関係ありませんが、106行目の「*2」を4つとも取って以下のようにしてください。
-----------------------------------------------------
   lab1[k]->Create(ss,SS_NOTIFY|WS_VISIBLE|SS_CENTER,CRect(64*j,64*i,64*(j+1),64*(i+1)),this,IDC_STATIC1
+ k );
-----------------------------------------------------

最終更新日:2006年10月06日 18時07分33秒
▲このページの上へ