###前提・実現したいこと
cでdirectxのゲームを作ろうとしています
空のウィンドウを実装中に以下のエラーメッセージが発生しました。
###発生している問題・エラーメッセージ
error C2059: 構文エラー : ')' source.cpp 50 1 error C2143: 構文エラー : ')' が ';' の前にありません。 source.cpp 50 1 error C2143: 構文エラー : ';' が ',' の前にありません。 source.cpp 50 1 error C2660: 'CreateWindowExA' : 関数に 2 個の引数を指定できません。source.cpp 50 1
###該当のソースコード
#include<stdio.h> #include<Windows.h> #define TITLE TEXT("test"); #pragma comment(lib,"winmm.lib") #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"d3dx9.lib") LRESULT CALLBACK WPC(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { case WM_DESTROY: //ウィンドウが閉じられたときとか PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, msg, wp, lp); } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdshow) { MSG msg; HWND hWnd; WNDCLASS winc; winc.style = CS_HREDRAW | CS_VREDRAW; //ウィンドウのスタイル設定 winc.lpfnWndProc = WPC; //コールバック関数へのポインタ winc.cbClsExtra = winc.cbWndExtra = 0; //ウィンドウクラス構造体とウィンドウインスタンスの後ろに割り当てる補足バイト数 winc.hInstance = hInstance; //このクラスのためのウィンドウプロシージャがあるインスタンドハンドル winc.hIcon = LoadIcon(NULL, IDI_APPLICATION); //アイコン設定 NULL:システム定義のアイコン IDI_APPLICATION:規定のアプリアイコン winc.hCursor = LoadCursor(NULL, IDC_ARROW); //カーソル設定 NULL:システム定義のアイコン IDC_ARROW標準の矢印カーソル winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //ウィンドウの背景を設定 winc.lpszMenuName = NULL; //クラスメニューを設定できる winc.lpszClassName = TITLE; //このウィンドウクラスにつける if (!RegisterClass(&winc))return 0; //レジスター関数にウィンドウクラスを渡して失敗したら終了 int dH = GetSystemMetrics(SM_CYCAPTION) //縦幅(タイトルバーとフレーム2個分の幅)を + GetSystemMetrics(SM_CYFRAME) * 2; //GetsystemMetricsでもとめてる int dW = GetSystemMetrics(SM_CXFRAME) * 2; //横幅(フレーム二個分の幅)を //GetSystemMetricsでもとめてる hWnd = CreateWindow( //ウィンドウを作る関数 TITLE, //ウィンドウクラスの名前を指定 TITLE, //ウィンドウのタイトル WS_OVERLAPPEDWINDOW | WS_VISIBLE, //VISIBLE:最初に生成されるウィンドウOVERLAPWINDOW:ふちが沈んで盛り上がった CW_USEDEFAULT, //ウィンドウの横方向の初期位置x CW_USEDEFAULT, //ウィンドウの縦方向の初期位置y 800 + dW, //枠も合わせた横幅 600 + dH, //枠も合わせた縦幅 NULL, //親ウィンドウのハンドル NULL, //こどもウィンドウのID hInstance, //アプリケーションインスタンスのハンドル NULL ); DWORD SyncOld = timeGetTime(); // システム時間を取得 DWORD SyncNow; timeBeginPeriod(1); //マイクロ秒の分解を設定 #pragma comment(lib, "winmm.lib")が必要 ZeroMemory(&msg, sizeof(msg)); //メモリ初期化 while (msg.message != WM_QUIT){ Sleep(1); //お休み if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){ //メッセージの受け取り TranslateMessage(&msg); //メッセージの変換 DispatchMessage(&msg); //メッセージの出力 } else { SyncNow = timeGetTime(); if (SyncNow - SyncOld >= 1000 / 60) { //60フレーム SyncOld = SyncNow; // } } } timeEndPeriod(1); //マイクロ秒の分解を設定 #pragma comment(lib, "winmm.lib")が必要 return (int)msg.wParam; //なにこれ }
###試したこと
引数を確認しても数があってるように見えます
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。