前提・実現したいこと
ビットマップ表示方法のサイト
こちらのサイトを元にC言語でビットマップ画像を表示をしたいと思っております。
開発環境はwindows10でVSCodeを使用し実装しております。
ソースファイルのコンパイル方法はコマンドプロンプトにてgccを使用し以下コマンドを使っています。
cmd
1gcc bmp_display.c -o bmp_display -lgdi32
該当のソースコード
rc?
//リソーススクリプト KITTY BITMAP "neko.bmp"
bmp_display
c
1#include <windows.h> 2 3LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) { 4 HDC hdc , hBuffer; 5 PAINTSTRUCT ps; 6 static HBITMAP hBitmap; 7 8 switch (msg) { 9 case WM_DESTROY: 10 DeleteObject(hBitmap); 11 PostQuitMessage(0); 12 return 0; 13 case WM_CREATE: 14 hBitmap = LoadBitmap( 15 ((LPCREATESTRUCT)lp)->hInstance , 16 TEXT("KITTY") 17 ); 18 return 0; 19 case WM_PAINT: 20 hdc = BeginPaint(hwnd , &ps); 21 hBuffer = CreateCompatibleDC(hdc); 22 SelectObject(hBuffer , hBitmap); 23 24 BitBlt(hdc , 0 , 0 , 400 , 120 , hBuffer , 70 , 80 , SRCCOPY); 25 26 DeleteDC(hBuffer); 27 EndPaint(hwnd , &ps); 28 return 0; 29 } 30 return DefWindowProc(hwnd , msg , wp , lp); 31} 32 33int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , 34 PSTR lpCmdLine , int nCmdShow ) { 35 HWND hwnd; 36 MSG msg; 37 WNDCLASS winc; 38 39 winc.style = CS_HREDRAW | CS_VREDRAW; 40 winc.lpfnWndProc = WndProc; 41 winc.cbClsExtra = winc.cbWndExtra = 0; 42 winc.hInstance = hInstance; 43 winc.hIcon = LoadIcon(NULL , IDI_APPLICATION); 44 winc.hCursor = LoadCursor(NULL , IDC_ARROW); 45 winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 46 winc.lpszMenuName = NULL; 47 winc.lpszClassName = TEXT("KITTY"); 48 49 if (!RegisterClass(&winc)) return -1; 50 51 hwnd = CreateWindow( 52 TEXT("KITTY") , TEXT("Kitty on your lap") , 53 WS_OVERLAPPEDWINDOW | WS_VISIBLE , 54 CW_USEDEFAULT , CW_USEDEFAULT , 55 CW_USEDEFAULT , CW_USEDEFAULT , 56 NULL , NULL , 57 hInstance , NULL 58 ); 59 60 if (hwnd == NULL) return -1; 61 62 while(GetMessage(&msg , NULL , 0 , 0)) { 63 TranslateMessage(&msg); 64 DispatchMessage(&msg); 65 } 66 return msg.wParam; 67}
発生している問題・エラーメッセージ
試したこと
・neko.bmpを用意し、リソースファイルの2行をクラス内外に記載。
・別のrc拡張子のファイルを作成しリソースファイルの内容を記載し同フォルダに配置。
・gcc resource.rc -o resourceコマンド
全てうまくいきませんでした。
画像認識系の参考書購入(3冊)しましたが、それらしきリソースファイルの取り扱いの記載が見当たらなく、
Google検索などでリソースファイルをコンパイルするには他のアプリが必要という記事やC++に関する記事が多く、C言語によるrcファイルのコンパイルの方法について見つけることができませんでした。
もしくはリソースファイルを使わない方法の記載でも構いません。
何かアドバイス頂けないでしょうか。よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー