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;
No.1ベストアンサー
- 回答日時:
> Run-Time Check Failure #3 - The variable 'hMemDC' is being used without being defined
> WM_CREATEの処理で、初期化を行っているつもりなのですが・・・
hMemDCは、関数「WndProc」内のローカル変数ですから、
一旦「WndProc」を抜けると、破棄されてしまうのでは?
なるほど。有難う御座います。
こういったプログラミングは初めてなもんで、そういったことは思いもよりませんでした。
ちなみにどのような対処をすれば、コンパイルが受け入れられるでしょうか?
それとも、構造的に無理があるんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- 数学 ScilabのMatplotの引数に関する質問です 3 2022/07/26 12:16
- 飛行機・空港 ミルウォーキーツールHDC大阪から伊丹空港へ乗り換え無しで行く方法はありますか? できれば、空港直通 2 2023/05/12 06:44
- HTML・CSS cssのclipについて 1 2022/12/17 15:03
- スポーツサイクル ogk rect ladiesについて 男性でも使えますか? 1 2023/04/13 05:49
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GetDC()とCreateCompatibleDC()
-
画面のちらつきについて
-
ピクチャーコントロールのデバ...
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
グラフの交点の求め方(Excel)
-
フォントの大きさ
-
コントロールの書式設定で、“コ...
-
VBAのフォント変更(エクセルか...
-
コンボボックス内の文字サイズ変更
-
エクセルのコントロールツール...
-
他のウィンドウのボタンを自動...
-
vbaから他のアプリを終了
-
ドロップダウンリストのフォン...
-
DateTimePickerでに年月までし...
-
検索の画面がでなくなってしま...
-
メッセージボックスを大きくす...
-
ダイアログボックスで指定した...
-
メッセージボックスの選択ボタ...
-
VB6,リストボックスの特定行の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンテキスト依存とは?
-
ダイアログにビットマップを貼...
-
GetDC()とCreateCompatibleDC()
-
画面がチカチカする
-
C 多角形を半透明に塗る方法
-
ピクチャーコントロールのデバ...
-
Rectangleで、リソースが解放さ...
-
画像処理 ビットマップ ダブ...
-
ウインドウ内全体を一定時間で...
-
TextOutについて
-
VBでFD、USBの有効・無効...
-
メモリデバイスコンテキスト&...
-
ハードコピーをプログラムから...
-
VC++のTextOutの再描画の仕方
-
PrintScreenしたあとに画像を保...
-
SelectObjectについて
-
ダブルバッファの作り方
-
VC++でBitmapとText文字を表示...
-
Windowsプログラミング 画面描...
-
GetPixelに使うHDCの作り方
おすすめ情報