我在程序中写了以下代码://define.h
DBS_STRTSDM *Arr_DBS_STRTSDM;DBS_STR_ID_NAME *Arr_Tradio_ID_NAME;
然后在程序中使用如下:
1.cpp
include "define.h"
...
..
Arr_DBS_STRTSDM=new DBS_STRTSDM[nRows];//指针指向,nRows为数组大小2.cpp
include "define.h"
...
..
Arr_Tradio_ID_NAME=new DBS_STR_ID_NAME[nRows];//指针指向,nRows为数组大小编译不通过:(1.obj : error LNK2005: .....)
struct DBS_STR_ID_NAME * Arr_Tradio_ID_NAME" (?Arr_Tradio_ID_NAME@@3PAUDBS_STR_ID_NAME@@A) already defined in 2.objMainFrm.obj : error LNK2005: "struct DBS_STRTSDM * Arr_DBS_STRTSDM" (?Arr_DBS_STRTSDM@@3PAUDBS_STRTSDM@@A) already defined 2.obj在声明中好像有重定义的行为,但是我搞不清楚错在那里,应该如何改正,
请诸位指教!!
多谢
DBS_STRTSDM *Arr_DBS_STRTSDM;DBS_STR_ID_NAME *Arr_Tradio_ID_NAME;
然后在程序中使用如下:
1.cpp
include "define.h"
...
..
Arr_DBS_STRTSDM=new DBS_STRTSDM[nRows];//指针指向,nRows为数组大小2.cpp
include "define.h"
...
..
Arr_Tradio_ID_NAME=new DBS_STR_ID_NAME[nRows];//指针指向,nRows为数组大小编译不通过:(1.obj : error LNK2005: .....)
struct DBS_STR_ID_NAME * Arr_Tradio_ID_NAME" (?Arr_Tradio_ID_NAME@@3PAUDBS_STR_ID_NAME@@A) already defined in 2.objMainFrm.obj : error LNK2005: "struct DBS_STRTSDM * Arr_DBS_STRTSDM" (?Arr_DBS_STRTSDM@@3PAUDBS_STRTSDM@@A) already defined 2.obj在声明中好像有重定义的行为,但是我搞不清楚错在那里,应该如何改正,
请诸位指教!!
多谢
在头文件中定义变量,所以所有的cpp都有这些变量。
头文件中应该是声明,在cpp中定义。
比如
.h
extern DBS_STRTSDM *Arr_DBS_STRTSDM;
extern DBS_STR_ID_NAME *Arr_Tradio_ID_NAME;
在1.cpp中
DBS_STRTSDM *Arr_DBS_STRTSDM;
DBS_STR_ID_NAME *Arr_Tradio_ID_NAME;
DBS_STR_ID_NAME *Arr_Tradio_ID_NAME;使用时:
Arr_DBS_STRTSDM=new DBS_STRTSDM[nRows];//指针指向,nRows为数组大小;
Arr_Tradio_ID_NAME=new DBS_STR_ID_NAME[nRows];//指针指向,nRows为数组大小.h
extern DBS_STRTSDM *Arr_DBS_STRTSDM;
extern DBS_STR_ID_NAME *Arr_Tradio_ID_NAME;