前提・実現したいこと
Win32APIを使ってGUIを作っていたら、エラーが発生しました。
発生している問題・エラーメッセージ
特になし
該当のソースコード
C
1#include <windows.h> 2 3/** 4 * ウィンドウプロシージャー 5 * 6 * @r LRESULT コールバック関数等から返される 32bit 値 7 * CALLBACK 呼び出し規約 8 * 9 * @p hwnd ウィンドウのハンドル 10 * @p msg メッセージ 11 * @p wp 付加情報 12 * @p lp 付加情報 13 */ 14LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ); 15 16/** 17 * windows アプリケーションで初めに呼ばれる関数 18 * 19 * @p hInstance インスタンスハンドル このプログラムを判別するハンドル 20 * @p hPrevInstance 現在使用されていないため常に NULL 21 * @p lpCmdLine コマンドラインから受け取った引数 22 * @p nCmdShow アプリケーションの初期表示設定 23 */ 24int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow ) 25{ 26 HWND hwnd; 27 WNDCLASS winc; 28 MSG msg; 29 30 winc.style = CS_HREDRAW | CS_VREDRAW; // 縦横方向にリサイズされた際再描画 31 winc.lpfnWndProc = WndProc; // ウィンドウプロシージャーを設定 32 winc.cbClsExtra = winc.cbWndExtra; // 構造体の追加領域 33 winc.hInstance = hInstance; // インスタンスハンドル 34 winc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); // アイコンのビットマップハンドル 35 winc.hCursor = LoadCursor( NULL, IDC_ARROW ); // マウスカーソル 36 winc.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH ); // 背景色 37 winc.lpszMenuName = NULL; // クラスメニュー 38 winc.lpszClassName = TEXT( "TITLE" ); // ウィンドウクラスの名前 39 40 if( !RegisterClass( &winc ) ) return -1; 41 42 hwnd = CreateWindow( 43 TEXT( "TITLE" ), TEXT( "title" ), 44 WS_OVERLAPPEDWINDOW, 45// 100, 100, 640, 480, 46 CW_USEDEFAULT, CW_USEDEFAULT, // デフォルト値 47 CW_USEDEFAULT, CW_USEDEFAULT, 48 NULL, NULL, 49 hInstance, NULL 50 ); 51 52 if( hwnd == NULL ) return -2; 53 54 ShowWindow( hwnd, SW_SHOW ); 55 56// MessageBox( NULL, TEXT( "message" ), TEXT( "title" ), MB_OK ); 57 58// while( TRUE ){ 59 /*** 60 * メッセージキューからメッセージを受け取ります。 61 * 62 * MSG 型の構造体 63 * ウィンドウのハンドル すべてのウィンドウから受け取るなら NULL 64 * 受け取るメッセージの最小値でフィルタリング 行わない場合 0 65 * 受け取るメッセージの最大値でフィルタリング 行わない場合 0 66 */ 67// GetMessage( &msg, NULL, 0, 0 ); 68 // 左クリックされたら 69// if( msg.message == WM_LBUTTONUP ) break; 70 /*** 71 * ウィンドウプロシージャーに値を渡す 72 * 73 * MSG 型の構造体 74 */ 75// DispatchMessage( &msg ); 76// } 77 78 while( GetMessage( &msg, NULL, 0, 0 ) ) DispatchMessage( &msg ); 79 80 return msg.wParam; 81} 82 83LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) 84{ 85 int nYesNo; 86 LPCREATESTRUCT lpcsWnd; 87 88 HDC hdc; 89 LPTSTR lptStr = TEXT( "message" ); 90 PAINTSTRUCT ps; 91 92// if( msg == WM_LBUTTONUP ){ 93// exit( 0 ); 94// } 95 96 switch( msg ){ 97// case WM_CLOSE: 98// return 0; 99/* case WM_CREATE: 100 lpcsWnd = (LPCREATESTRUCT)lp; 101 nYesNo = MessageBox( hwnd, TEXT( "window を作成しますか?" ), TEXT( "Question" ), MB_YESNO | MB_ICONQUESTION ); 102 if( nYesNo == IDYES ) return 0; 103 else return -1;*/ 104 case WM_DESTROY: 105// MessageBox( hwnd, TEXT( "終了します" ), TEXT( "message" ), MB_ICONINFORMATION ); 106// DestroyWindow( hwnd ); // ウィンドウを破棄 107 PostQuitMessage( 0 ); 108 return 0; 109 case WM_PAINT: 110 hdc = BeginPaint( hwnd, &ps ); 111 SetTextColor( hdc, RGB( 255, 255, 255 ) ); 112 TextOut( hdc, 10, 10, lptStr, lstrlen( lptStr ) ); 113 EndPaint( hwnd, &ps ); 114 return 0; 115 } 116 117 return DefWindowProc( hwnd, msg, wp, lp ); 118} 119
試したこと
何度もソースを確認しました。
補足情報(FW/ツールのバージョンなど)
Windows10、MinGW どちらも 64bit です。
また、エラーがコンパイル時出ています。
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.5.4/../../../../x86_64-w64-mingw32/bin/ld.e xe: cannot open output file a.exe: Permission denied collect2: ld returned 1 exit status

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/21 06:50