详细请点:http://topic.csdn.net/t/20030604/15/1875272.html
以下是部分文件代码: ---------------------- main.cpp //包含 #include "Init.h" #include "GEngine_main.h" // //通用变量 // LPDIRECTDRAWSURFACE lpDDSSour=NULL, lpDDSTemp=NULL; //临时页面 LPDIRECTDRAWSURFACE lpDDSBackGround; // 背景页面 ... ... ----------------- init.cpp /*************************************** * * * * ***************************************/ #include"Init.h" ... ... ---------------------- GEngine_main.cpp //包含 #include "Init.h" #include "GEngine_main.h" ... ... ---------------------- init.h #ifndef INIT_H #define INIT_H #include <ddraw.h> //变量 //#define PICMAX 100 //图像最大数 LPDIRECTDRAWSURFACE lpDDSPic[100]; // 图像 //函数 void ReadBitmap(void); //读入图像 #endif //INIT_H ---------------------- GEngine_main.h #ifndef GENGINE_MAIN_H #define GENGINE_MAIN_H #include <windows.h> #include <ddraw.h> LPDIRECTDRAWSURFACE lpDDS_BackGround; // 背景层 LPDIRECTDRAWSURFACE lpDDS_Scenery; // 景物层 LPDIRECTDRAWSURFACE lpDDS_Fairy; // 精灵层 //extern LPDIRECTDRAWSURFACE lpDDSPic[100]; void GEMain(void); //主 GameEngine void BuildBackGround(void); //生成背景 #endif ------------------ main.h #ifndef MAIN_H #define MAIN_H #include <ddraw.h> #define ScreenWidth 640 //游戏区宽度 #define ScreenHeight 480 //游戏区高度 ... ... #endif ------------------- 报错内容: Init.obj : error LNK2005: "struct IDirectDrawSurface * * lpDDSPic" (?lpDDSPic@@3PAPAUIDirectDrawSurface@@A) 已经在 GEngine_main.obj 中定义 main.obj : error LNK2005: "struct IDirectDrawSurface * lpDDS_BackGround" (?lpDDS_BackGround@@3PAUIDirectDrawSurface@@A) 已经在 GEngine_main.obj 中定义 main.obj : error LNK2005: "struct IDirectDrawSurface * lpDDS_Fairy" (?lpDDS_Fairy@@3PAUIDirectDrawSurface@@A) 已经在 GEngine_main.obj 中定义 main.obj : error LNK2005: "struct IDirectDrawSurface * * lpDDSPic" (?lpDDSPic@@3PAPAUIDirectDrawSurface@@A) 已经在 GEngine_main.obj 中定义 main.obj : error LNK2005: "struct IDirectDrawSurface * lpDDS_Scenery" (?lpDDS_Scenery@@3PAUIDirectDrawSurface@@A) 已经在 GEngine_main.obj 中定义 Debug/KLDT.exe : fatal error LNK1169: 找到一个或多个多重定义的符号