一个贼奇怪的问题

时间:2021-09-11 14:40:28
问一个很奇怪的问题,我的一个类在一个DLG里面加进去没有问题,在这个工程的另外一个DLG里面加进去,LINK总说重复,两个DLG之间并没有任何的关系,只是继承自同一个类,

7 个解决方案

#1


-------------------Configuration: StatusMonitor - Win32 Debug--------------------
Linking...
testpage_kp_dl_imba.obj : error LNK2005: "public: __thiscall CSpreadSheet::CSpreadSheet(class CString,class CString,bool)" (??0CSpreadSheet@@QAE@VCString@@0_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: __thiscall CSpreadSheet::~CSpreadSheet(void)" (??1CSpreadSheet@@QAE@XZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::AddHeaders(class CStringArray &,bool)" (?AddHeaders@CSpreadSheet@@QAE_NAAVCStringArray@@_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::DeleteSheet(void)" (?DeleteSheet@CSpreadSheet@@QAE_NXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::DeleteSheet(class CString)" (?DeleteSheet@CSpreadSheet@@QAE_NVCString@@@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::AddRow(class CStringArray &,long,bool)" (?AddRow@CSpreadSheet@@QAE_NAAVCStringArray@@J_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::AddCell(class CString,class CString,long,bool)" (?AddCell@CSpreadSheet@@QAE_NVCString@@0J_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::AddCell(class CString,short,long)" (?AddCell@CSpreadSheet@@QAE_NVCString@@FJ@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReplaceRows(class CStringArray &,class CStringArray &)" (?ReplaceRows@CSpreadSheet@@QAE_NAAVCStringArray@@0@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadRow(class CStringArray &,long)" (?ReadRow@CSpreadSheet@@QAE_NAAVCStringArray@@J@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadColumn(class CStringArray &,class CString,bool)" (?ReadColumn@CSpreadSheet@@QAE_NAAVCStringArray@@VCString@@_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadColumn(class CStringArray &,short)" (?ReadColumn@CSpreadSheet@@QAE_NAAVCStringArray@@F@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadCell(class CString &,class CString,long,bool)" (?ReadCell@CSpreadSheet@@QAE_NAAVCString@@V2@J_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadCell(class CString &,short,long)" (?ReadCell@CSpreadSheet@@QAE_NAAVCString@@FJ@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: void __thiscall CSpreadSheet::BeginTransaction(void)" (?BeginTransaction@CSpreadSheet@@QAEXXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::Commit(void)" (?Commit@CSpreadSheet@@QAE_NXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::RollBack(void)" (?RollBack@CSpreadSheet@@QAE_NXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::Convert(class CString)" (?Convert@CSpreadSheet@@QAE_NVCString@@@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "private: bool __thiscall CSpreadSheet::Open(void)" (?Open@CSpreadSheet@@AAE_NXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "private: short __thiscall CSpreadSheet::CalculateColumnNumber(class CString,bool)" (?CalculateColumnNumber@CSpreadSheet@@AAEFVCString@@_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "private: void __thiscall CSpreadSheet::GetExcelDriver(void)" (?GetExcelDriver@CSpreadSheet@@AAEXXZ) already defined in testpage_kp_agc.obj
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
../MainShell/bin/StatusMonitor.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Creating browse info file...

StatusMonitor.exe - 22 error(s), 1 warning(s)

#2


#program once

给你那个DLG的头文件中加上编译开关
#ifndef DLG_H
#define DLG_H

DLG的声明
..............
..........

#endif

#3


没用,不是这个问题,我要是把其中一个DLG中的那个加入的类的.H去掉,说是没定义,加上就出现上面的错误,我都是加在两个DLG的CPP中,郁闷了

#4


SpreadSheet.h加编译开关。
#ifndef SpreadSheet_h
#define SpreadSheet_h
.....
.....
#endif

#5


一个贼简单的问题,照4楼说的去做。

#6


一个贼贼的问题,呵呵,学习了。。帮顶。。

#7


一个贼贼的问题,呵呵,学习了。。帮顶。。

#1


-------------------Configuration: StatusMonitor - Win32 Debug--------------------
Linking...
testpage_kp_dl_imba.obj : error LNK2005: "public: __thiscall CSpreadSheet::CSpreadSheet(class CString,class CString,bool)" (??0CSpreadSheet@@QAE@VCString@@0_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: __thiscall CSpreadSheet::~CSpreadSheet(void)" (??1CSpreadSheet@@QAE@XZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::AddHeaders(class CStringArray &,bool)" (?AddHeaders@CSpreadSheet@@QAE_NAAVCStringArray@@_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::DeleteSheet(void)" (?DeleteSheet@CSpreadSheet@@QAE_NXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::DeleteSheet(class CString)" (?DeleteSheet@CSpreadSheet@@QAE_NVCString@@@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::AddRow(class CStringArray &,long,bool)" (?AddRow@CSpreadSheet@@QAE_NAAVCStringArray@@J_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::AddCell(class CString,class CString,long,bool)" (?AddCell@CSpreadSheet@@QAE_NVCString@@0J_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::AddCell(class CString,short,long)" (?AddCell@CSpreadSheet@@QAE_NVCString@@FJ@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReplaceRows(class CStringArray &,class CStringArray &)" (?ReplaceRows@CSpreadSheet@@QAE_NAAVCStringArray@@0@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadRow(class CStringArray &,long)" (?ReadRow@CSpreadSheet@@QAE_NAAVCStringArray@@J@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadColumn(class CStringArray &,class CString,bool)" (?ReadColumn@CSpreadSheet@@QAE_NAAVCStringArray@@VCString@@_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadColumn(class CStringArray &,short)" (?ReadColumn@CSpreadSheet@@QAE_NAAVCStringArray@@F@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadCell(class CString &,class CString,long,bool)" (?ReadCell@CSpreadSheet@@QAE_NAAVCString@@V2@J_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::ReadCell(class CString &,short,long)" (?ReadCell@CSpreadSheet@@QAE_NAAVCString@@FJ@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: void __thiscall CSpreadSheet::BeginTransaction(void)" (?BeginTransaction@CSpreadSheet@@QAEXXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::Commit(void)" (?Commit@CSpreadSheet@@QAE_NXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::RollBack(void)" (?RollBack@CSpreadSheet@@QAE_NXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "public: bool __thiscall CSpreadSheet::Convert(class CString)" (?Convert@CSpreadSheet@@QAE_NVCString@@@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "private: bool __thiscall CSpreadSheet::Open(void)" (?Open@CSpreadSheet@@AAE_NXZ) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "private: short __thiscall CSpreadSheet::CalculateColumnNumber(class CString,bool)" (?CalculateColumnNumber@CSpreadSheet@@AAEFVCString@@_N@Z) already defined in testpage_kp_agc.obj
testpage_kp_dl_imba.obj : error LNK2005: "private: void __thiscall CSpreadSheet::GetExcelDriver(void)" (?GetExcelDriver@CSpreadSheet@@AAEXXZ) already defined in testpage_kp_agc.obj
LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
../MainShell/bin/StatusMonitor.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Creating browse info file...

StatusMonitor.exe - 22 error(s), 1 warning(s)

#2


#program once

给你那个DLG的头文件中加上编译开关
#ifndef DLG_H
#define DLG_H

DLG的声明
..............
..........

#endif

#3


没用,不是这个问题,我要是把其中一个DLG中的那个加入的类的.H去掉,说是没定义,加上就出现上面的错误,我都是加在两个DLG的CPP中,郁闷了

#4


SpreadSheet.h加编译开关。
#ifndef SpreadSheet_h
#define SpreadSheet_h
.....
.....
#endif

#5


一个贼简单的问题,照4楼说的去做。

#6


一个贼贼的问题,呵呵,学习了。。帮顶。。

#7


一个贼贼的问题,呵呵,学习了。。帮顶。。