こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

指定の開発環境を導入しても解決できません。

以前、猫でもわかるゲームプログラミングで、
付録のプログラム「外部ファイルの画像を表示する」
をコンパイルした時にエラーが起きると質問しましたが、

その時の解答「指定の開発環境を導入する」を行い、
コンパイルした所、以下のエラーが出てきました。

その時のプログラムがこちら。
// bmp02.cpp

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
ATOM InitApp(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);

char szClassName[] = "bmp02";//ウィンドウクラス
HINSTANCE hInst;


int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst,
LPSTR lpsCmdLine, int nCmdShow)
{
MSG msg;
BOOL bRet;

hInst = hCurInst;

if (!InitApp(hCurInst))
return FALSE;
if (!InitInstance(hCurInst, nCmdShow))
return FALSE;
while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) {
if (bRet == -1) {
break;
} else {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}

//ウィンドウ・クラスの登録

ATOM InitApp(HINSTANCE hInst)
{
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;//プロシージャ名
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInst;//インスタンス
wc.hIcon = (HICON)LoadImage(NULL,
MAKEINTRESOURCE(IDI_APPLICATION),
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
wc.hCursor = (HCURSOR)LoadImage(NULL,
MAKEINTRESOURCE(IDC_ARROW),
IMAGE_CURSOR,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;//メニュー名
wc.lpszClassName = (LPCSTR)szClassName;
wc.hIconSm = (HICON)LoadImage(NULL,
MAKEINTRESOURCE(IDI_APPLICATION),
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);

return (RegisterClassEx(&wc));
}

//ウィンドウの生成

BOOL InitInstance(HINSTANCE hInst, int nCmdShow)
{
HWND hWnd;

hWnd = CreateWindow(szClassName,
"猫でもわかるゲームプログラミング", //タイトルバーに表示されます
WS_OVERLAPPEDWINDOW, //ウィンドウの種類
CW_USEDEFAULT,//X座標
CW_USEDEFAULT,//Y座標
CW_USEDEFAULT,//幅
CW_USEDEFAULT,//高さ
NULL, //親ウィンドウのハンドル、親を作るときはNULL
NULL, //メニューハンドル、クラスメニューを使うときはNULL
hInst, //インスタンスハンドル
NULL);
if (!hWnd)
return FALSE;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}

//ウィンドウプロシージャ

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
int id, i, j;
static int bmpw, bmph;
static HDC hdc_mem;
static HBITMAP hBmp;
BITMAP bmp_info;
HDC hdc;
PAINTSTRUCT ps;
RECT rc;


switch (msg) {
case WM_CREATE:
hBmp = (HBITMAP)LoadImage(NULL, "cat.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
GetObject(hBmp, (int)sizeof(bmp_info), &bmp_info);
bmpw = bmp_info.bmWidth;
bmph = bmp_info.bmHeight;
hdc_mem = CreateCompatibleDC(NULL);
SelectObject(hdc_mem, hBmp);
break;
case WM_PAINT:
GetClientRect(hWnd, &rc);
hdc = BeginPaint(hWnd, &ps);
for (i = 0; i * bmpw <= rc.right; i++) {
for (j = 0; j * bmph <= rc.bottom; j++) {
BitBlt(hdc, i * bmpw, j * bmph, bmpw, bmph, hdc_mem, 0, 0, SRCCOPY);
}
}
EndPaint(hWnd, &ps);
break;
case WM_CLOSE:
id = MessageBox(hWnd,
"終了してもよろしいですか",
"確認",
MB_YESNO | MB_ICONQUESTION);
if (id == IDYES)
DestroyWindow(hWnd);
break;
case WM_DESTROY:
DeleteObject(hBmp);
DeleteDC(hdc_mem);
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hWnd, msg, wp, lp));
}
return 0;
}

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2009-07-21 00:19:10

QNo.5142189

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

コンパイル時に-Wを指定してないのかと。
設定を見直してみては。

参考URL:http://gimite.net/bcbqtree/qtreemain.cgi?mode=thread&thread=341

投稿日時 - 2009-07-21 01:50:59

お礼

変身有難うございます。設定方法がわからないので、
参考書を一から読み直してからやってみます。

投稿日時 - 2009-08-05 11:18:35

あなたにオススメの質問