VC++6.0 WIN32 で、どうしても解決できないエラーがあります
ソースを見ていただけると幸いです
C:\Windows\デスクトップ\new\top.cpp(66) : error C2440: '=' : 'void *' から 'struct HBITMAP__ *' に変換することはできません。(新しい動作 ; ヘルプを参照)
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
と出てしまいます。VC++5.0だと動いたんですが。
どうすればいいんでしょうか?
//ここからです
#include<windows.h>
HINSTANCE hInst;
LRESULT CALLBACK WinProc(HWND,UINT,WPARAM,LPARAM);
char szWinName[]=Window_Sample;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpszArgs,int nWinMode){
HWND hwnd;
MSG msg;
WNDCLASS wcls;
//window class
wcls.hInstance=hInstance;
wcls.lpszClassName=szWinName;
wcls.lpfnWndProc=WinProc;
wcls.style=0;
wcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wcls.hCursor=LoadCursor(NULL,IDC_ARROW);
wcls.lpszMenuName=NULL;
wcls.cbClsExtra=0;
wcls.cbWndExtra=0;
//window back color
wcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
//window class
if(!RegisterClass(&wcls))return 0;
//print style
hwnd=CreateWindow(
szWinName,
あいうえお,
WS_OVERLAPPEDWINDOW,
50,
50,
550,
450,
NULL,
NULL,
hInstance,
NULL
);
//window print
ShowWindow(hwnd,nWinMode);
UpdateWindow(hwnd);
//message loop
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static HBITMAP hBit[3];
static HDC memDC[3];
switch(message){
case WM_CREATE:
hBit[1]=LoadImage(hInst,c:/windows/デスクトップ/new/stage1.bmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
hBit[2]=LoadImage(hInst,c:/windows/デスクトップ/new/main.bmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
hdc=GetDC(hwnd);
hBit[0]=CreateCompatibleBitmap
(hdc,500,400);
memDC[0]=CreateCompatibleDC(hdc);
memDC[1]=CreateCompatibleDC(hdc);
memDC[2]=CreateCompatibleDC(hdc);
ReleaseDC(hwnd,hdc);
SelectObject(memDC[0],hBit[0]);
SelectObject(memDC[1],hBit[1]);
SelectObject(memDC[2],hBit[2]);
break;
case WM_PAINT:
BeginPaint(hwnd,&ps);
BitBlt(memDC[0],0,0,500,400,
memDC[1],0,0,SRCCOPY);
BitBlt(memDC[0],0,0,100,100,
memDC[2],0,0,SRCCOPY);
BitBlt(ps.hdc,0,0,500,400,memDC[0],0,0,SRCCOPY);
EndPaint(hwnd,&ps);
break;
case WM_DESTROY:
DeleteObject(hBit[0]);
DeleteObject(hBit[1]);
DeleteObject(hBit[2]);
DeleteDC(memDC[0]);
DeleteDC(memDC[1]);
DeleteDC(memDC[2]);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
はじめまして。
Nijiと申します。
hBit[1] = (HBITMAP) LoadImage( -------- );
のように、キャストすれば問題無くどうさしますよ。
あぁ( ̄□ ̄;)!!
間違ってチェックボックスにチェックしてしまいました…。
HACKさん、ごめんなさい…m(_ _)m
できたー
サンキュー
めちゃうれしいです