ファイルの分割
Posted: 2011年7月15日(金) 22:06
ファイルの分割がどうやってもできないので質問しました。
環境はC言語でVC2008です。
これで実行すると
"int R_jikiimage" (?R_jikiimage@@3HA) は既に Main.obj で定義されています。
fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
このエラーはつまり、複数箇所でヘッダファイルが読み込まれているよ! っていうことですよね?
なので、ImageDivision.cpp でincludeしてある#include "CharaData.h"を消して実行してみました。
すると、今度は
'R_jikiimage' : 定義されていない識別子です。
とエラーが出ます。
どうすれば解決するでしょうか?
環境はC言語でVC2008です。
//Main.cpp
#include<stdio.h>
#include<stdlib.h>
#include "DxLib.h"
#include "CharaData.h"
int Key[256];
int Color = GetColor( 255, 255, 255 ); //基本(黒)
int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) GetHitKeyStateAll_InputKey[i]++;
else GetHitKeyStateAll_InputKey[i]=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);//ウィンドウモード
// 画面モードの設定
Load_Graph();
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
CharaMove();
ScreenFlip();
}
DxLib_End();
return 0;
}
//CharaMove.cpp
#include<stdio.h>
#include<stdlib.h>
#include "DxLib.h"
//キャラ移動
void CharaMove(){
if( CheckHitKey(KEY_INPUT_RIGHT) == TRUE ){
}
}
//ImageDivision.cpp
#include "DxLib.h"
#include "CharaData.h"
//キャラクター画像の読み込み
void Load_Graph(){
R_jikiimage = LoadGraph( "media/jiki_a.png");
}
//TRUE FALSE判定
#define TRUE 1
#define FALSE 0
//インクルードガード??出来てる・・・??
#ifndef CHARADATA_H
#define CHARADATA_H
//主人公データ
struct Chara{
int flag; //主人公のフラグ
int hp; //主人公のHP
int power; //主人公の攻撃力
double x; //主人公の位置X
double y; //主人公の位置Y
double vx; //主人公の移動量X
double vy; //主人公の移動量Y
};
//自キャラデータ
extern Chara Chara;
//画像ハンドル
extern int R_jikiimage=0; //主人公の画像 この=0は省略できますか?
void Load_Graph();
void CharaMove();
#endif
これで実行すると
"int R_jikiimage" (?R_jikiimage@@3HA) は既に Main.obj で定義されています。
fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
このエラーはつまり、複数箇所でヘッダファイルが読み込まれているよ! っていうことですよね?
なので、ImageDivision.cpp でincludeしてある#include "CharaData.h"を消して実行してみました。
すると、今度は
'R_jikiimage' : 定義されていない識別子です。
とエラーが出ます。
どうすれば解決するでしょうか?