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;
估计错误就是这里,就是不知道为什么
展开
 我来答
匿名用户
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;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式