首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

LNK2005异常,大家看一下

2013-08-14 
LNK2005错误,大家看一下编译产生2005错误,重复定义,可是我已经在每个头文件都是用了#ifndef。。。#define。。。。

LNK2005错误,大家看一下
编译产生2005错误,重复定义,可是我已经在每个头文件都是用了#ifndef。。。#define。。。。#endif。怎么可能会重复定义呢?错误如下
1>正在编译资源...
1>正在编译资源清单...
1>正在链接...
1>MainFrm.obj : error LNK2005: "void __cdecl ALERT(class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >)" (?ALERT@@YAXV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "bool * QHadChange" (?QHadChange@@3PA_NA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "void * Qthreadevent" (?Qthreadevent@@3PAXA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "struct tagBITMAP QHengFrontbm" (?QHengFrontbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "struct tagBITMAP QHengBackbm" (?QHengBackbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "struct tagBITMAP QShuFrontbm" (?QShuFrontbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "struct tagBITMAP QShuBackLeftbm" (?QShuBackLeftbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "struct tagBITMAP QShuBackRightbm" (?QShuBackRightbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int (* QHengUI)[6]" (?QHengUI@@3PAY05HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int (* QShuUI)[9]" (?QShuUI@@3PAY08HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "bool QIsLocked" (?QIsLocked@@3_NA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "bool QReStart" (?QReStart@@3_NA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int QMasternumber" (?QMasternumber@@3HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int QWhoisfirst" (?QWhoisfirst@@3HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int QScore" (?QScore@@3HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "bool QBunengfan" (?QBunengfan@@3_NA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int * QDefen" (?QDefen@@3PAHA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int * Qhigh" (?Qhigh@@3PAHA) 已经在 ChildView.obj 中定义


1>MainFrm.obj : error LNK2005: "int QZhu" (?QZhu@@3HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "enum QPokermark QZhumark" (?QZhumark@@3W4QPokermark@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "enum QPokersort QBenlunsort" (?QBenlunsort@@3W4QPokersort@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "enum QPokermark QBenlunpokermark" (?QBenlunpokermark@@3W4QPokermark@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int QLunnumber" (?QLunnumber@@3HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int QCurrentplayer" (?QCurrentplayer@@3HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int QPanshu" (?QPanshu@@3HA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "int * QPlayerPokerNum" (?QPlayerPokerNum@@3PAHA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "bool QDebug" (?QDebug@@3_NA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "void * Qplayerend" (?Qplayerend@@3PAXA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "bool Qisstart" (?Qisstart@@3_NA) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CReferee Qreferee" (?Qreferee@@3VCReferee@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CPlayer * QPlayer" (?QPlayer@@3PAVCPlayer@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CPokerUIList * UIList" (?UIList@@3PAVCPokerUIList@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CDC QShuBackRightDC" (?QShuBackRightDC@@3VCDC@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CDC QShuBackLeftDC" (?QShuBackLeftDC@@3VCDC@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CDC QShuFrontDC" (?QShuFrontDC@@3VCDC@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CDC QHengBackDC" (?QHengBackDC@@3VCDC@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CDC QHengFrontDC" (?QHengFrontDC@@3VCDC@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CBitmap QShuBackBitmapRight" (?QShuBackBitmapRight@@3VCBitmap@@A) 已经在 ChildView.obj 中定义


1>MainFrm.obj : error LNK2005: "class CBitmap QShuBackBitmapLeft" (?QShuBackBitmapLeft@@3VCBitmap@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CBitmap QShuFrontBitmap" (?QShuFrontBitmap@@3VCBitmap@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CBitmap QHengBackBitmap" (?QHengBackBitmap@@3VCBitmap@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CBitmap QHengFrontBitmap" (?QHengFrontBitmap@@3VCBitmap@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CDC Qdc" (?Qdc@@3VCDC@@A) 已经在 ChildView.obj 中定义
1>MainFrm.obj : error LNK2005: "class CPoker * QDipoker" (?QDipoker@@3PAVCPoker@@A) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "void __cdecl ALERT(class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >)" (?ALERT@@YAXV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "bool * QHadChange" (?QHadChange@@3PA_NA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "void * Qthreadevent" (?Qthreadevent@@3PAXA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "struct tagBITMAP QHengFrontbm" (?QHengFrontbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "struct tagBITMAP QHengBackbm" (?QHengBackbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "struct tagBITMAP QShuFrontbm" (?QShuFrontbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "struct tagBITMAP QShuBackLeftbm" (?QShuBackLeftbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "struct tagBITMAP QShuBackRightbm" (?QShuBackRightbm@@3UtagBITMAP@@A) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "int (* QHengUI)[6]" (?QHengUI@@3PAY05HA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "int (* QShuUI)[9]" (?QShuUI@@3PAY08HA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "bool QIsLocked" (?QIsLocked@@3_NA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "bool QReStart" (?QReStart@@3_NA) 已经在 ChildView.obj 中定义


1>Player.obj : error LNK2005: "int QMasternumber" (?QMasternumber@@3HA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "int QWhoisfirst" (?QWhoisfirst@@3HA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "int QScore" (?QScore@@3HA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "bool QBunengfan" (?QBunengfan@@3_NA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "int * QDefen" (?QDefen@@3PAHA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "int * Qhigh" (?Qhigh@@3PAHA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "int QZhu" (?QZhu@@3HA) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "enum QPokermark QZhumark" (?QZhumark@@3W4QPokermark@@A) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "enum QPokersort QBenlunsort" (?QBenlunsort@@3W4QPokersort@@A) 已经在 ChildView.obj 中定义
1>Player.obj : error LNK2005: "enum QPokermark QBenlunpokermark" (?QBenlunpokermark@@3W4QPokermark@@A) 已经在 ChildView.obj 中定义
==============================================================================================================
MainFrm.h  shuangsheng.h  Referee.h PokerUIList.h  PokerUI.h   Player.h
已经全部用#ifndef。。#define。。#endif来防止重复编译了,但全部出现这种情况,因字数限制,删除了部分错误,不过都是这样!一样的!

请大家指教!
[解决办法]
这是引入哪个头文件出的事情?这些报错的定义在哪个头文件中?
包含的顺序是否有问题?
[解决办法]
你这个是两个文件同时定义了相同的函数
比如QShuBackBitmapRight在MainFrm中,
childview中都定义了
[解决办法]
1. 是否有重复声明的地方?
2. 在头文件里加上#pragma once试试。
[解决办法]
把SP1补丁包装好,另外#ifndef这个逻辑再整理一遍,注意预编译的使用
[解决办法]
变量或者函数的定义放到cpp文件中,不要放到.h中~

热点排行