デバイスコンテキストの宣言に関するエラー?について
Run-Time Check Failure #3 - The variable 'hMemDC' is being used without being defined.
というエラーが出ます。
自分としては、WM_CREATEの処理で、初期化を行っているつもりなのですが・・・
力を貸して頂ければ有難いです。よろしくお願いします。
ちなみに、関係のありそうな部分だけ掲載しています。
この部分だけ残して、他の部分をコメントアウトしてコンパイルしても、同じエラーメッセージが出ました。
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
RECT rect;
HDC hDC; PAINTSTRUCT ps;
HDC hMemDC; HBITMAP hMemBmp;
HDC hMjDC; HBITMAP hMjBmp; BITMAP MjBmp;
/* POINT posMJ;
int MJshot; POINT posMJshot;*/
switch (message)
{
case WM_CREATE:
GetClientRect(hWnd, &rect); // クライアント領域の大きさをrectに格納
hDC = GetDC(hWnd);
hMemDC = CreateCompatibleDC(hDC); // hDCと互換性をとるメモリデバイスコンテキストhMemDCを構築
hMemBmp = CreateCompatibleBitmap(hMemDC, rect.right, rect.bottom);
hMjDC = CreateCompatibleDC(hMemDC); // hMemDCと互換性をとるメモリデバイスコンテキストhMjDCを構築
hMjBmp = (HBITMAP)LoadImage( // ビットマップイメージMYJET(リソース)をhMjBmpに設定
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
MAKEINTRESOURCE(IDB_MYJET), IMAGE_BITMAP,
0, 0, LR_DEFAULTCOLOR
);
SetTimer(hWnd, 1, 10, NULL); // 100分の1秒毎にWM_TIMERメッセージを送るタイマー1をセット
break;
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps); // hDCにディスプレイのデバイスコンテキストのハンドルを格納
BitBlt( // hDCにバックバッファhMemDCを転送
hDC, 0, 0, rect.right, rect.bottom,
hMemDC, 0, 0, SRCCOPY
);
EndPaint(hWnd, &ps);
break;
お礼
ありがとうございました。 ご教示の通り該当テーブルを削除したところ、解決しました。