- 締切済み
windowsのアプリケーションを作っているのですがどうにもうまくコン
windowsのアプリケーションを作っているのですがどうにもうまくコンパイルできず困っています。 一ヶ月前に同じ質問をしたのですが具体的にどうすればいいのかわからなかったのでもう一度質問させていただきます。 キャスト演算子かポインタ関係だと思うのですがいろいろ変えてみてもうまくいきませんでした。 具体的にどうしたらできるようになるか答えていただけますでしょうか? 私の都合により、一ヶ月先に反応すると思うのでよろしくお願いします。 以下エラー部分です。 LRESULT CALLBACK WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam) { HDC hdc,hdcWin; PAINTSTRUCT ps; int i,j; switch(iMsg){ case WM_CREATE: lpDIB=(LPBYTE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(BITMAPINFO)+E*F); lI=(LPBITMAPINFO)lpDIB; for(i=0;i<F;i++){ alpPixel[i]=(LPDWORD)(lpDIB+sizeof(BITMAPINFO)+E*i); } lI->bmiHeader.biSize =sizeof(BITMAPINFOHEADER); lI->bmiHeader.biWidth =B; lI->bmiHeader.biHeight =-B; lI->bmiHeader.biPlanes =1; lI->bmiHeader.biBitCount =B; lI->bmiHeader.biCompression =BI_RGB; for(i=0;i<D;i++){ *(alpPixel[0]+i)=0x00ff0000; *(alpPixel[1]+i)=0x0000ff00; *(alpPixel[2]+i)=0x000000ff; *(alpPixel[3]+i)=0x0000ffff; *(alpPixel[4]+i)=0x00ffffff; } hdc=GetDC(hwnd); hBMP=CreateCompatibleBitmap(hdcWin,C,C); hdcBMP=CreateCompatibleDC(hdc); hOldBMP=(HBITMAP)SelectObject(hdcBMP,hBMP); for(i=0;i<A;i++){ for(j=0;j<A;j++){ StretchDIBits(hdcBMP,j*B,i*B,B,B, 0,0,B,B,alpPixel[map[j+i*A]], lI,DIB_RGB_COLORS,SRCCOPY); } } ZeroMemory(&biInfo,sizeof(BITMAPINFO)); lI->bmiHeader.biSize =sizeof(BITMAPINFOHEADER); lI->bmiHeader.biWidth =C; lI->bmiHeader.biHeight =-C; lI->bmiHeader.biPlanes =1; lI->bmiHeader.biBitCount =B; lI->bmiHeader.biCompression =BI_RGB; ○ hBMP2=CreateDIBSection(hdc,&biInfo,DIB_RGB_COLORS,(LPVOID)(&lpPixel),NULL,0); //エラーはここ hdcBMP2=CreateCompatibleDC(hdc); hOldBMP2=(HBITMAP)SelectObject(hdcBMP2,hBMP2); ReleaseDC(hwnd,hdc); X=0; Y=1; return 0; case WM_DESTROY: ~中略~ } return DefWindowProc(hwnd,iMsg,wParam,lParam); } エラー E2034 169: 'void *' 型は 'void * *' 型に変換できない(関数 __stdcall WndProc(HWND__ *,unsigned int,unsigned int,long) ) エラー E2340 169: 4 番目のパラメータは void * * 型として定義されているので void * 型は渡せない(関数 __stdcall WndProc(HWND__ *,unsigned int,unsigned int,long) ) エラーの部分はこんな感じでした。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- magicalpass
- ベストアンサー率58% (378/648)
前にも書いたけど型が違うからエラーになってるだけです。エラーメッセージもはっきりそう言ってるでしょ。 きちんと関数仕様を調べて作ってください。 CreateDIBSectionの4つ目のパラメータの方は「void **」です。 それなのにあなたはわざわざ「LPVOID」でキャストして渡してるからエラーになるんです。 LPVOIDがどういう型かわかってますか?