質問: windowsプログラミングのひな形の段階でエラーが出てしまいます。 指定されたパスが見つかりませんと出てウィンドウが生成されません。 コードが違うのでしょうか・・それともプロジェクトの作り方に問題があるのでしょうか。visualstudio2005のvisual c++でつくっています。 以下コードです↓ //hinagata.cpp #include lresult callback wndproc(hwnd,uint,wparam,lparam); atom initapp(hinstance); bool initinstance(hinstance,int); char szclassname[]="hinagata"; int winapimain(hinstance hcurinst,hinstance hprevinst,lpstr lpscmdline,int ncmdshow) { msg msg; bool bret; if(!initapp(hcurinst)) return false; if(!initinstance(hcurinst,ncmdshow)) return false; while((bret=getmessage)&msg,null,0,0))!=0){ if(bret==-1){ messagebox(null,"getmessageエラー","error",mb_ok); 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=(hcorsor)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 ncmsshow) { hwnd hwnd; hwnd=createwindow(szclassname, //タイトルバーにこの名前が表示される "犬でもわかるwindowsプログラミング", ws_overlappedwindow, cw_usedefault, cw_usedefault, cw_usedefault, cw_usedefault, 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) { switch(msg){ case wm_destroy: postquitmessage(0); break; dafault: return(defwindowproc(hwnd,msg,wp,lp)); } return 0; }
回答: ★アドバイス ・最初の場所でエラーが出ませんか? 間違い⇒『winapimain』 正しい⇒『winapi winmain』 ※タイプミスには気をつけましょう。→あまり人の事はいえないけど。 ・winmain()の次の場所もエラーが出ませんか? 間違い⇒『while((bret=getmessage)&msg,null,0,0))!=0){』 正しい⇒『while((bret=getmessage(&msg,null,0,0))!=0){』 ※これはタイプミスだね。→カッコの向きが違っている。 ・initapp()の次の場所もエラーが出ませんか? 間違い⇒『wc.hcursor=(hcorsor)loadimage(null,』 正しい⇒『wc.hcursor=(hcursor)loadimage(null,』 ※『hcursor』が正しい型。タイプミス。 ・wndproc()の次の場所もエラーが出ませんか? 間違い⇒『dafault:』 正しい⇒『default:』 ※『default』が正しい型。これもタイプミス。 ・以上の4つのタイプミスによりエラーになっていると思います。 ちゃんとソースを見直して下さい。 あとキーワードに色が付けれるエディタを用意しましょう。 ・以上。