derror LNK2005: "class CDatabase m_stuDb" (?m_stuDb@@3VCDatabase@@A) already defined in Program...
我用VC++6.0通过MFCODBC连接数据库,我建立的是基于对话框的应用程序,本来错误提示如下:h:\softwareprogram\c++文件\programchap...
我用VC++6.0通过MFC ODBC连接数据库,我建立的是基于对话框的应用程序,本来错误提示如下:
h:\software program\c++文件\programchapt1101\programchapt1101dlg.h(14) : error C2146: syntax error : missing ';' before identifier 'm_stuDb'
h:\software program\c++文件\programchapt1101\programchapt1101dlg.h(14) : error C2501: 'CDatabase' : missing storage-class or type specifiers
h:\software program\c++文件\programchapt1101\programchapt1101dlg.h(14) : fatal error C1004: unexpected end of file found
我在stdafx.h中加入了#include "afxdb.h"头文件,结果还是错误,错误如下:
rogramChapt1101Dlg.obj : error LNK2005: "class CDatabase m_stuDb" (?m_stuDb@@3VCDatabase@@A) already defined in ProgramChapt1101.obj
ProgramChapt1101Dlg.obj : error LNK2005: "class CRecordset * m_pRecSet" (?m_pRecSet@@3PAVCRecordset@@A) already defined in ProgramChapt1101.obj
Debug/ProgramChapt1101.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.
我搞了半天了,求助大神帮助我在 ProgramChapt1101Dlg.h头文件中定义了下面的类和指针:
CDatabase m_stuDb;
CRecordset* m_pRecSet;
估计错误就是这里,就是不知道为什么 展开
h:\software program\c++文件\programchapt1101\programchapt1101dlg.h(14) : error C2146: syntax error : missing ';' before identifier 'm_stuDb'
h:\software program\c++文件\programchapt1101\programchapt1101dlg.h(14) : error C2501: 'CDatabase' : missing storage-class or type specifiers
h:\software program\c++文件\programchapt1101\programchapt1101dlg.h(14) : fatal error C1004: unexpected end of file found
我在stdafx.h中加入了#include "afxdb.h"头文件,结果还是错误,错误如下:
rogramChapt1101Dlg.obj : error LNK2005: "class CDatabase m_stuDb" (?m_stuDb@@3VCDatabase@@A) already defined in ProgramChapt1101.obj
ProgramChapt1101Dlg.obj : error LNK2005: "class CRecordset * m_pRecSet" (?m_pRecSet@@3PAVCRecordset@@A) already defined in ProgramChapt1101.obj
Debug/ProgramChapt1101.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.
我搞了半天了,求助大神帮助我在 ProgramChapt1101Dlg.h头文件中定义了下面的类和指针:
CDatabase m_stuDb;
CRecordset* m_pRecSet;
估计错误就是这里,就是不知道为什么 展开
1个回答
2013-09-06
展开全部
不能在.h文件里写
CDatabase m_stuDb;
假如A.cpp包含了这个.h,那m_stuDB就被实例化了一次;
B.cpp也包含这个.h,那m_stuDB又实例化一次,这样就重定义了啦
正确做法是把CDatabase m_stuDb;放某个cpp里,然后.h里用
extern CDatabase m_stuDb;
CDatabase m_stuDb;
假如A.cpp包含了这个.h,那m_stuDB就被实例化了一次;
B.cpp也包含这个.h,那m_stuDB又实例化一次,这样就重定义了啦
正确做法是把CDatabase m_stuDb;放某个cpp里,然后.h里用
extern CDatabase m_stuDb;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询