現在、ソースファイルの分割について勉強中です。
試しに簡単なコードを分割してみたのですが、エラーが出てしまい困ってます。
コードはこんな感じです。
test01.cpp
#include "DxLib.h"
#include "test.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウインドウモードに変更
if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了
hello();
WaitKey() ; // キーの入力待ち(『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
#include "DxLib.h"
#include "test.h"
void hello()
{
White = GetColor( 255 , 255 , 255 ) ; // 白色の値を取得
DrawString( 0, 0, "hello! DX Library!" , White); //文字列表示
DrawString(100,100, "こんにちは! DXライブラリ!" , White);//文字列表示
}
test02.cppが関数の中身、
test.hがこれらに使う宣言や定義をまとめたもの、
という風に設計したつもりです。
ヘッダファイルには#ifndef を使って重複インクルードは避けてるはずなんですが、
「1>test02.obj : error LNK2005: "int White" は既に test01.obj で定義されています。
fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。」
というエラーが出てしまいます。
いろいろ調べたのですがどこが間違っているのかわかりません。
ご教授いただければ幸いです。