Migration VC6 vs VC2008 - error LNK2005: déjà défini(e) dans mfc42d.lib
Bonjour :D,
En phase de link, j'ai les erreurs suivantes:
Code:
1 2
| Édition des liens en cours...
atlsd.lib(atltypes.obj) : error LNK2005: "public: __thiscall CSize::CSize(void)" (??0CSize@@QAE@XZ) déjà défini(e) dans mfc42d.lib(MFC42D.DLL) |
J'ai effectivement récupéré les lib release et debug du vieux projet VC6.0 à la demande du compilateur, à savoir MFC42.lib,MFC42D.LIB, mfcs42.lib, mfcs42d.lib, Mfco42.lib, Mfco42d.lib
Savez vous s'il ne faut plus utiliser ces libs, s'il existe une version plus récente, ce qui les remplace ?
Merci pour votre aide :D
GP
Version MFC pour Visual C++ 2008 ?
Bonjour,
Ci dessous la traduction de quelques extraits choisis.
Citation:
Liste des différentes versions livrées avec Visual C++
[...]
MFC version 4.21 (still mfc42.dll) Visual C++ version 5.0
MFC version 6.0 (still mfc42.dll) Visual C++ version 6.0
MFC version 7.0 (mfc70.dll) Visual C++ .NET 2002
MFC version 7.1 (mfc71.dll) Visual C++ .NET 2003
Citation:
Les DLL ATL et MFC livrées avec Visual C++ .NET 2003 ont été renommées respectivement ATL71.dll et MFC71.dll.
Les classes Visual C++ ATL et MFC sont binairement incompatibles avec les même classes d'une version précédente. De ce fait, tout code compilé utilisant mfc42.dll doit être recompilé avec Visual Studio .NET.
De même, tout fichier DLL ou LIB utilisé par votre application doit aussi être reconstruit avec Visual .NET
Par exemple, une librairie contenant une fonction exportée prenant CString comme parametre, et qui avait été construite avec Visual C++ 6.0 générera une erreur à l'édition de lien de Visual C++ .NET.
source:
Dans mon cas, je suis sur VC2008, le compilateur m'a demandé MFC42 et d'autres fichiers du même type (version 4.2), on peut donc supposer qu'ils étaient déclarés quelque part dans le projet, mais je ne parviens pas à trouver ou ?
Avez vous une idée ? Merci ! :lol: