IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

migration projet MFC de VC6.0 vers VS2008 : problèmes de compilation


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut migration projet MFC de VC6.0 vers VS2008 : problèmes de compilation
    Bonjour,

    Dans le cadre de mon travail, je dois faire migrer une application VC6.0 vers Visual Studio 2008.
    Dans un des projets constituant l'application, je rencontre une erreur de compilation qui me laisse perperxe car elle concerne les MFC:

    dans le journal de génération :
    c:\program files\microsoft visual studio\vc98\mfc\src\afximpl.h(145) :
    error C2011: 'CPushRoutingFrame' : redéfinition du type 'class'
    c:\program files\microsoft visual studio
    9.0\vc\atlmfc\include\afxpriv.h(755) : voir la déclaration de
    'CPushRoutingFrame'
    l'erreur affichée dans le compilo est:
    error C2011: 'CPushRoutingFrame' : redéfinition du type 'class'
    Il apparait qu'une classe a été déclarée deux fois... dans les fichiers de MFC!!!
    Je pense que cette erreur est en réalité due à un mauvais paramétrage du projet.

    D'autres ont déjà rencontré cette erreurs et ils l'ont résolue en utilisant le convertisseur automatique de Visual... or je ne possède pas ce convertisseur pour les projets C++...

    Je ne sais plus trop par quel bout prendre le problème... surtout qu'il concerne le paramétrage de Visual 2008, environnement que je découvre...

    Quelqu'un aurait-il déjà rencontré cette erreur et l'aurait résolue? ou aurait une piste pour essayer de la résoudre?

    Merci beaucoup par avance

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    pour commencer essaye de rajouter au début du fichier .h ou se trouve cette classe :

  3. #3
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Dans les options du projet, C/C++ puis Advanced, tu as une option "Show Includes". Active-la, tu aura toute la hiérarchie des includes dans le build log. Un peu long à analyser, mais c'est bien utile pour détecter ce genre de truc, les includes circulaires et autres problèmes tordus.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Merci beaucoup!

    en fait il y avait un appel "en dur" avec le chemin absolu pour stdafx dans un des fichiers... donc quand on passe d'une version de visual à une autre les fichiers inclus de cette manière entrent forcément en conflit avec les (mêmes) fichier de la nouvelle version de visual...

    il faut rester calme...

    J'ai une nouvelle erreur de compilation (évidemment...) qui concerne aussi les MFC mais plutôt le paramétrage je crois cette fois...

    Ces erreurs concernent grosso-modo les fichiers atlalloc, atlconv,atldebugapi, atltrace, afxv_w32 et elles sont du type:

    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxv_w32.h(233) : error C2065: 'DWORD_PTR'*: identificateur non déclaré
    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxv_w32.h(233) : error C2143: erreur de syntaxe*: absence de ';' avant 'GetWindowThreadProcessId'
    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlalloc.h(80) : error C2065: 'LLONG_MIN'*: identificateur non déclaré
    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlalloc.h(80) : error C2057: expression constante attendue
    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlalloc.h(81) : error C2065: 'LLONG_MAX'*: identificateur non déclaré
    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlalloc.h(81) : error C2057: expression constante attendue
    J'ai essayé de suivre le conseil d'aller étudier le fichier log: je ne trouve rien de transcendant sauf que plusieurs fonction de la lib Pgsql_Lib sont appelés plusieurs fois par exemple:

    Remarque : inclusion du fichier : O:\RGEAlti\Pgsql_Lib\src\include\pshpack4.h
    Remarque : inclusion du fichier : O:\RGEAlti\Pgsql_Lib\src\include\poppack.h
    Remarque : inclusion du fichier : o:\rgealti\pgsql_lib\src\include\pshpack4.h
    Remarque : inclusion du fichier : o:\rgealti\pgsql_lib\src\include\pshpack2.h
    Remarque : inclusion du fichier : o:\rgealti\pgsql_lib\src\include\poppack.h
    Remarque : inclusion du fichier : o:\rgealti\pgsql_lib\src\include\pshpack2.h
    Remarque : inclusion du fichier : o:\rgealti\pgsql_lib\src\include\poppack.h
    Dans les includes j'ai
    O:\RGEAlti\Pgsql_Lib\src\include
    et
    O:\RGEAlti\Pgsql_Lib\src\interfaces\libpq
    Sauf que les erreurs concernent des libs des MFC et non de PGSQL... donc il ne faut pas aller voir de ce côté là...

    En suivant ce lien http://www.developpez.net/forums/d85...n/#post4872643, j'ai trouvé une réponse que je n'arrive pas à mettre en ouvre chez moi...
    Où pourrais-je aller farfouiller pour trouver pourquoi ça ne marche pas?

    Merci beaucoup,

    (je sais pas s'il fallait que je crée une nouvelle discussion sachant que ma nouvelle question est dans la continuité de la précédente...)

  5. #5
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    C'est soit encore un problème d'include (chez moi LLONG_MAX est défini dans limits.h) soit un problème de version (la déclaration est encapsulée dans un #if _MSC_VER > 1000 ).

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Je pense que c'est le même problème qui génère l'erreur de DWORD_PTR et LLONG_MAX/LLONG_MIN... (d'autant plus que je retrouve les même erreurs en compilant différents fichiers du même projet... en tout j'ai 7650 erreurs dans le même style...)

    J'ai cherché dans tous les fichiers s'il y avait un include de limits.h, je n'ai rien trouvé. En tentant de débeuger fichier par fichier et en incluant limits. h en en-tête, ça ne résout rien non plus...
    j'ai même tenté de mettre limits.h dans les includes globaux...

    J'ai un peu l'impression d'essayer tout et n'importe quoi mais en même temps je comprends pas à quel niveau si situe mon problème...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. migration projet dot net 3.5 vers 4.0
    Par yevain dans le forum ASP.NET
    Réponses: 5
    Dernier message: 07/12/2011, 16h07
  2. Migration projet crystal report VS2003 vers VS2008
    Par David Fouejio dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/09/2009, 11h34
  3. Réponses: 2
    Dernier message: 22/11/2006, 15h54
  4. [MFC] Copier une ressource vers un autre projet
    Par annedjomo dans le forum MFC
    Réponses: 7
    Dernier message: 25/01/2006, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo