详细请点: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: 找到一个或多个多重定义的符号