LNK 2005 dans Visual C++ dans Visual Studio 2010
Je suis en train de compiler un programme C++, écrite à l'aide de Visual C++ 2005 et MFC, MS VS 2010. Malheureusement, j'obtiens l'erreur suivante lors de la compilation:
Error 2 error LNK2005: "public: virtual __thiscall CMemDC::~CMemDC(void)" (??1CMemDC@@UAE@XZ) already defined in CMemDCImpl.obj Project\Project\Project\uafxcwd.lib(afxglobals.obj) Project.
CMemDCImpl a un fichier d'en-tête qui contient des définitions de tous les membres de la classe CMemDCImpl, et *.fichier cpp avec leurs implémentations. Merci de m'aider à corriger cette erreur.
Nous montrer le code.
code? pour quoi faire?
code? pour quoi faire?
OriginalL'auteur Andrey | 2011-02-20
Vous devez vous connecter pour publier un commentaire.
Vous mentionnez que vous CMemDCImpl est définie dans un fichier cpp. Cependant, il semble aussi être définie dans uafxcwd.lib (une bibliothèque vous apparemment utilisation).
Je pense à deux possibilités pour cette erreur:
.
OriginalL'auteur joce
Sans le code, on ne peut que deviner. Très probablement, vous avez fait une des ces:
CMemDC::~CMemDC() {}
deux fois, peut-être un copier-coller que vous n'avez pas de renommer l'CMemDCImpl::~CMemDCImpl()
CMemDC::~CMemDC()
dans un fichier d'en-tête aprèsCMemDC
définition de la classe au lieu de dans la définition de la classeOriginalL'auteur Erik
Solution que j'utilise : renommer le bien connu et utilisé CMemDC classe dans quelque chose d'aussi CMemDc
parce que Microsoft écrasé et Keith ou nous ont pas protégés par copyright ?!?
dans vs2k10 Microsoft osé pour écraser le nom de la CMemDC classe de Keith, avec de la merde.
Hier né de Microsoft gars : c'est l'un des la plupart des classes populaires que tout le monde utilise depuis 1997! Brut! Honte sur vous, Microsoft !
CMemDc - DC de mémoire
//Auteur: Keith Règle
//E-mail: [email protected]
//Le Droit D'Auteur 1996-1997, Keith Règle
Merci Keith ! Ces "nouvelles" et "catastrophique" les gars de "l'après-Portes" veulent nous changer tous les "CMemDC" dans toutes les sources que nous avons.. Quelle honte
MemDc.h
à quelque chose commeCustomMemDc.h
, et de renommer la classe et toutes les références à quelque chose commeCCustomMemDc
.OriginalL'auteur Michaela