ページ 11

複数のファイルに分けてコンパイルする

Posted: 2015年3月19日(木) 00:05
by DAIKI
現在新・ゲームプログラミングでプログラミングの勉強をしている者です。
ゲームプログラミング設定->複数のファイルに分けてコンパイルする
という個所のプログラミングを行っているのですが、

main.cpp
#include <DxLib.h>
#include <player.h>

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0){
Player_test();
}
DxLib_End();
return 0;
}


player.h
void Player_test();


player.cpp
#include "DxLib.h"

void Player_test(){
DrawFormatString(0, 0, GetColor(255, 255, 255), "分割出来ています");
}


というプログラムを実行した結果
エラー1 error C1083: include ファイルを開けません。'player.h':No such file or directory c:\users\user\documents\visual studio 2013\projects\gameprog\main.cpp 行 2 列 1 プロジェクト GameProg
エラー2 IntelliSense: ソース ファイルを開けません "player.h" c:\Users\user\Documents\Visual Studio 2013\Projects\GameProg\main.cpp 行 2 列 1 プロジェクト GameProg
エラー3 IntelliSense: 識別子 "Player_test" が定義されていません c:\Users\user\Documents\Visual Studio 2013\Projects\GameProg\main.cpp 行 7 行 3 プロジェクト GameProg

というエラーが出てしまいました。

初心者のためネットや過去の質問を調べてみましたが全く分かりませんでした。どう改善すればよいのでしょうか?
恐れ入りますがよろしくお願いいたします。

使用しているのは
Microsoft Visual Studio Express 2013 for Windows Desktop
Visual Studio C++ 2010
です。

Re: 複数のファイルに分けてコンパイルする

Posted: 2015年3月19日(木) 00:06
by みけCAT
詳しくはわかりませんが、player.hのあるディレクトリをプロジェクトの設定でインクルードパスに追加すると改善するかもしれません。

Re: 複数のファイルに分けてコンパイルする

Posted: 2015年3月19日(木) 01:11
by V30
素人の回答で申し訳ございませんが、同じVS2013を使っている者として返答させて頂きます。

DxLib.hの読み込みエラーが出ていない(ちゃんと読み込めている)みたいだから、
player.hをDxLib.hの存在するフォルダに移動すれば、とりあえずエラーはなくなると思います。

あと、
#include <DxLib.h>と、
#include "DxLib.h"は、
意図的なものですか?

<>と""は、使い方(インクルードパスの設定)によっては混ざっていても問題ありませんが、
同じhファイルを読み込むのであれば、どちらかに統一した方が良いと思います。

解決しました!!

Posted: 2015年3月20日(金) 23:34
by DAIKI
みけCATさん、V30さん、解答ありがとうございました。

V30さんが指摘された<DxLib.h>と”DxLib.h”が混ざっている理由はなんですかという指摘に対して、前半のmain.cppは自分で打ったもので、後半のplayer.cppはコピーして貼り付けたためこのような形になっていました。

今回player.hは自分で作成した関数であったため、呼び出すためには#include疑似命令で呼び出さないといけないという事でした。つまり<player.h>ではなく"player.h"で呼び出さなければならなかったようです。

まだまだ勉強不足でした。
みなさんありがとうございました。

またすぐに質問することがあると思いますが、その時はまたよろしくお願いいたします。