質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

1720閲覧

構文エラーで空のウィンドウが作れないですC2059 C2143 C2660

satouterawaku

総合スコア13

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2016/11/28 10:36

###前提・実現したいこと
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; //なにこれ }

###試したこと
引数を確認しても数があってるように見えます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

#define TITLE TEXT("test");

最後の ; が不要ですね

投稿2016/11/28 10:46

takito

総合スコア3111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問