【发布时间】:2011-04-06 22:59:51
【问题描述】:
我正在使用 DragonFireSDK 制作一个应用程序,我想用 .cpp 和 .h 文件组织我的数千行应用程序
我在尝试做某事时遇到大量错误
所以我的 app.cpp (main, required one) 看起来像这样
代码:
#include "DragonFireSDK.h"
#include "SaveData.h"
#include "Structures.h"
#include "Definitions.h"
#include "Variables.h"
#include "SaveData.h"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "Functions.cpp"
#include "AppMain.cpp"
#include "AppExit.cpp"
#include "OnTimer.cpp"
#include "SaveData.h" 到 #include "Variables.h" 都有类似的东西 代码:
#ifndef _HeaderName
#define _HeaderName
//STUFF HERE LIKE
#define player1 0
#define player2 1
//OR
typedef struct _number {
int view;
int number;
bool able;
int opacity;
};_number number[4];
//OR
int whoseturn;
int bet[5];
bool reachedmax[5];
int playerimg[5];
#endif
现在我可能已经做错了,但这里还有一些...... 我的 AppMain.cpp、OnTimer.cpp 等看起来像这样 (AppMain() 等也是必需的函数) 代码:
#include "DragonFireSDK.h"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "Definitions.h"
#include "Structures.h"
#include "Variables.h"
#include "SaveData.h"
#include "Functions.cpp"
void AppMain() {
//STUFF HERE
};
现在这就是我认为问题所在... 函数.cpp 代码:
#include "DragonFireSDK.h"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "SaveData.h"
#include "Structures.h"
#include "Definitions.h"
#include "Variables.h"
//SOME FUNCTIONS
void SavePlayerMoney();
void SetInfo (int idnum, bool actuallyset = false);
void SwitchButton (int idnum, bool makeactive=true);
void DisableButton (int idnum);
double round (double number);
void SavePlayerMoney() {
//...
}
void SetInfo(int idnum, bool actuallyset) {
//...
}
void SwitchButton(int idnum, bool makeactive) {
//...
}
void DisableButton(int idnum){
//...
}
现在我认为如果修复了所有的东西之后我得到的错误...... 代码:
1>AppMain.obj : error LNK2005: "void __cdecl SwitchButton(int,bool)" (?SwitchButton@@YAXH_N@Z) already defined in App.obj
1>AppMain.obj : error LNK2005: "double __cdecl round(double)" (?round@@YANN@Z) already defined in App.obj
1>AppMain.obj : error LNK2005: "void __cdecl SetInfo(int,bool)" (?SetInfo@@YAXH_N@Z) already defined in App.obj
1>AppMain.obj : error LNK2005: "int __cdecl Digits(int)" (?Digits@@YAHH@Z) already defined in App.obj
非常感谢任何帮助!
【问题讨论】:
-
避免使用宏和预处理器
#define player1 0。不要#include.cpp 文件。避免使用全局变量,更喜欢使用类对象进行封装。实际上,只要有机会,就拿起一本好的 C++ 书。 -
尽管有 c++ 标签和 *.cpp 文件名,这看起来(从我们所见)是一个纯 C 程序。
-
缺少一些基本概念。认真考虑获得像 Visual Studio 这样的 IDE 和这样的书:amazon.com/Primer-Plus-5th-Stephen-Prata/dp/0672326973
标签: c++ include compiler-errors linker-errors function-declaration