ページ 11

エラーが解決できません。どう直せばよいでしょうか?

Posted: 2014年5月24日(土) 08:17
by ジン
最近、

1>c:\users\ジン\documents\gameprog\test2.cpp(1): fatal error C1083: include ファイルを開けません。'DxLib.h': No such file or directory

というエラーが出てきまして、いろいろ調べたのですが
どう直せばよいのかわかりませんでした。

皆様、どうか教えていただけないでしょうか?



#include "DxLib.h"

int Key[256];//キーが押されているフレーム数を格納

//キーの入力状態を更新
int gpUpdateKey(){
char tmpKey[256];//現在のキーの入力状態を格納
GetHitKeyStateAll(tmpKey);//全てのキーの入力状態を得る
for(int i=0; i<256; i++){
if(tmpKey !=0){//i番のキーコードに対応するキーが押されていたら
Key++;//加算
}else{ //押されていなければ
Key=0;//0にする
}
}
return 0;
}

//メニュー項目の表示に必要な構造体を用意
typedef struct{
int x,y; //座標格納用変数
char name[128];//項目格納用変数
}MenuElement_t;

int WINPAIWinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK);//ウィンドウモード変更と初期化と裏画面設定

//メニュー項目要素を5つ作る
MenuElement_t MenuElement[5]={
{80,100,"ゲームスタート"},//タグの中身の順番で格納される。xに80が、yに100が、nameに"ゲームスタート"が
{100,150,"おまけ"},
{100,200,"ヘルプ"},
{100,250,"コンフィグ"},
{100,300,"ゲーム終了"},
};
int SelectNum=0;//現在の選択番号

//while(裏画面を表画面に反映、メッセージ処理、画面クリア、キー更新)
while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey==0){

//計算フェーズ

if(Key[KEY_INPUT_DOWN]==1){//下キーが押された瞬間だけ処理

SelectNum=(SelectNum+1)%5;//現在の選択項目を1つ下にずらす(ループする)
}

if(Key[KEY_INPUT_UP]==1){//上キーが押された瞬間だけ処理

SelectNum=(SelectNum+4)%5;//現在の選択項目を1つ上にずらす(ループする)
}

if(Key[KEY_INPUT_DOWN]==1 || Key[KEY_INPUT_UP]==1){//下キーか、上キーが押された瞬間
for(int i=0;i<5;i++){ //メニュー項目数である5個ループ処理
if(i==SelectNum){ //今処理しているのが、選択番号と同じ要素なら
MenuElement.x=80; //座標を80にする
}else{ //今処理しているのが、選択番号以外なら
MenuElement.x=100; //座標を100にする
}
}
}

//描画フェーズ

for(int i=0;i<5;i++){//メニュー項目を描画
DrawFormatString(MenuElement.x,MenuElement.y,GetColor(255,255,255),MenuElement.name);
}

}

DxLib_End();//DXライブラリ終了処理
return 0;
}

Re: エラーが解決できません。どう直せばよいでしょうか?

Posted: 2014年5月24日(土) 08:47
by Rittai_3D
コードを貼り付けるときはコードタグで括って、かつ適切なインデントをして頂けると読みやすくて助かります。
ジン さんが書きました:

コード:

#include "DxLib.h"

int Key[256];//キーが押されているフレーム数を格納

//キーの入力状態を更新
int gpUpdateKey(){
	 char tmpKey[256];//現在のキーの入力状態を格納
	 GetHitKeyStateAll(tmpKey);//全てのキーの入力状態を得る
	 for(int i=0; i<256; i++){
		 if(tmpKey[i] !=0){//i番のキーコードに対応するキーが押されていたら
			 Key[i]++;//加算
		 }else{       //押されていなければ
			 Key[i]=0;//0にする
		 }
	 }
	 return 0;
}

//メニュー項目の表示に必要な構造体を用意
typedef struct{
	int x,y;       //座標格納用変数
	char name[128];//項目格納用変数
}MenuElement_t;

int WINPAIWinMain(HINSTANCE,HINSTANCE,LPSTR,int){
	ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK);//ウィンドウモード変更と初期化と裏画面設定

	//メニュー項目要素を5つ作る
	MenuElement_t MenuElement[5]={
		{80,100,"ゲームスタート"},//タグの中身の順番で格納される。xに80が、yに100が、nameに"ゲームスタート"が
		{100,150,"おまけ"},
		{100,200,"ヘルプ"},
		{100,250,"コンフィグ"},
		{100,300,"ゲーム終了"},
	};
	int SelectNum=0;//現在の選択番号

	//while(裏画面を表画面に反映、メッセージ処理、画面クリア、キー更新)
	while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey==0){

		//計算フェーズ

		if(Key[KEY_INPUT_DOWN]==1){//下キーが押された瞬間だけ処理

			SelectNum=(SelectNum+1)%5;//現在の選択項目を1つ下にずらす(ループする)
		}

		if(Key[KEY_INPUT_UP]==1){//上キーが押された瞬間だけ処理

			SelectNum=(SelectNum+4)%5;//現在の選択項目を1つ上にずらす(ループする)
		}

		if(Key[KEY_INPUT_DOWN]==1 || Key[KEY_INPUT_UP]==1){//下キーか、上キーが押された瞬間
			for(int i=0;i<5;i++){                          //メニュー項目数である5個ループ処理
			if(i==SelectNum){                              //今処理しているのが、選択番号と同じ要素なら
			MenuElement[i].x=80;                       //座標を80にする
			}else{                                     //今処理しているのが、選択番号以外なら
			MenuElement[i].x=100;                      //座標を100にする
			}
			}
		}

		//描画フェーズ

		for(int i=0;i<5;i++){//メニュー項目を描画
			DrawFormatString(MenuElement[i].x,MenuElement[i].y,GetColor(255,255,255),MenuElement[i].name);
		}

	}

	DxLib_End();//DXライブラリ終了処理
	return 0;
}
フォーラムルールをご覧ください。

さて、エラーの件ですが、
補足資料 1. DXライブラリを使ったプロジェクトを作ろう
もしくは
DXライブラリの使い方解説
を見ながら間違いなく設定されたのでしょうか?

Re: エラーが解決できません。どう直せばよいでしょうか?

Posted: 2014年5月24日(土) 08:55
by みけCAT
まさかとは思いますが、ウイルス対策ソフトにDxLib.hが消されていませんか?

Re: エラーが解決できません。どう直せばよいでしょうか?

Posted: 2014年5月24日(土) 08:56
by みけCAT
ファイル・フォルダの整理により、ライブラリの位置を移動したのにコンパイルに使用する設定は変えていない、ということはありませんか?

Re: エラーが解決できません。どう直せばよいでしょうか?

Posted: 2014年5月24日(土) 09:31
by ジン
 3D_3Dさん、みけCATさん
返信ありがとうございます。
DXライブラリの使い方から見直してきましたら、無事にできました。
どうやら、設定をしていなかったらしく・・・
今後はしっかり使い方を覚えておきます。

あと、掲示板のルールも確認せずに投稿してしまい、迷惑をおかけしました。
次に掲示板を使う際には、気を付けます。

ありがとうございました。