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

Visual C++ Discussion :

Passage VC6-> VS2008: erreur dans les fichiers internes � Visual lors de la compilation


Sujet :

Visual C++

  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2009
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2009
    Messages : 9
    Par d�faut Passage VC6-> VS2008: erreur dans les fichiers internes � Visual lors de la compilation
    Bonjour,

    Dans le cadre de mon travail, on m'a demand� de passer une solution de Visual C++6 vers Visual Studio 2008. Sous visual 6, la solution compile sans probl�me.

    Apr�s avoir pris en compte un certain nombre de modifications dans les 6 projets qui composent la solution (du type ajouter des d�clarations de variables enti�res dans les boucles "for", ou faire des modifications pour passer les bons types en entr�e), la compilation se passe bien pour 5 d'entre eux.

    J'ai toutefois �t� forc� d'ajouter aux projets les chemins des "include" de VC, certains fichiers ".h" ne se trouvant pas dans ceux de Visual studio 2008. Ce point d�j� me semble surprenant... mais �a marche...

    En revanche, lors de la compilation du 6�me projet, qui d�pend des 5 autres et doit conduire � la cr�ation d'un fichier ex�cutable, la compilation s'arr�te -le nombre d'erreur d�passe les 100 par fichier-...

    Ce qui est surprenant et pose probl�me, c'est que toutes ces erreurs ce situent dans des fichiers propres � Visual Studio 2008! les fichiers en question se trouvent dans:
    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\ ou dans c:\program files\microsoft visual studio 9.0\vc\include...

    et les erreurs sont de type:
    - error C2065: 'DWORD_PTR' : identificateur non d�clar�
    - error C2143: erreur de syntaxe : absence de ';' avant 'GetWindowThreadProcessId'
    - error C2065: 'LLONG_MIN' : identificateur non d�clar�
    - error C3861: 'memcpy_s' : identificateur introuvable
    ... [je passe, il y en a 7650, toutes du m�me genre]

    Or, ces fichiers n'ont pas �t� modifi�s dans le cadre du projet!!
    Les erreurs �tant du m�me type, sur des fichiers dans le m�me dossier, j'ai tendance � supposer qu'il s'agit d'une question de configuration de visual, mais sans certitude...

    Quelqu'un aurait-il d�j� rencontr� le m�me type d'erreur et pourrait-il m'�clairer? Merci d'avance.

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    D�tails du profil
    Informations personnelles :
    �ge : 51
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par d�faut
    Citation Envoy� par Flore22 Voir le message
    Quelqu'un aurait-il d�j� rencontr� le m�me type d'erreur et pourrait-il m'�clairer? Merci d'avance.
    C'est l'interface de certaines fonctions MFC qui a �t� chang�, le plus flagrant �tant les CString.

    Tu auras une partie de la r�ponse sur cette page. Comme tu as fait un gros saut de version (j'ai fait le m�me d'ailleurs), tu vas devoir concat�ner manuellement toutes les modifications avec rupture (Breaking Changes) de chaque version interm�diaire.
    Pour ma part, sur un probl�me similaire, j'ai d� r��crire la callback int�gralement pour la faire coller aux nouveaux param�tres (cf. aide MFC VS2008 pour savoir quoi faire/mettre).

    Quelques tuyaux :
    • Macro _USE_32BIT_TIME_T pour les probl�mes sur time_t.
    • Pour les versions s�curis�es des fonctions CRT/STL : _CRT_SECURE_NO_WARNINGS et _SCL_SECURE_NO_WARNINGS.
    • V�rifier attentivement les CString dans le code MFC.
    En esp�rant t'avoir aid�.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au s�rieux, de toutes fa�ons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum ad�quat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2009
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2009
    Messages : 9
    Par d�faut
    Merci pour le lien! Il me sera probablement utile, mais malheureusement pas dans l'imm�diat... (je note toutefois le raisonnement, je vais me plonger dans ces sauts pour voir s'ils ne r�solvent pas d'autres erreurs) :

    La premi�re erreur que j'obtiens lors de la compilation, r�currente, est la suivante:

    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlalloc.h(80) : error C2065: 'LLONG_MIN'*: identificateur non d�clar�
    Dans le lien que tu me donnes, on indique que la version ant�rieure de visual acceptait que les param�tres d'une fonctions soient entre guillemets alors qu'il ne s'agissait pas de chaine de caract�res, ou l'inverse (que le param�tre n'ait pas de guillemets alors qu'il s'agissait d'une chaine). Ceci donne une erreur C2065 (comme la mienne!).

    Si ce n'est que dans le code de ma machine, le code est le suivant:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    public:
    	static const long long _Min=LLONG_MIN;
    	static const long long _Max=LLONG_MAX;
    };
    et LLONG_MIN n'est -d'apr�s la console d'erreur- pas d�clar�...
    Je veux bien le d�clarer, mais le fichier est un fichier Visual... (voir chemin d'acc�s). Et je suppose que Visual fournit des fichiers corrects...

    Les autres erreurs y ressemblent... La deuxi�me, qui porte sur la m�me ligne que la premi�re, est la suivante:
    c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlalloc.h(80) : error C2057: expression constante attendue
    Bref, �a ressemble � des erreurs de d�butant (oubli de d�claration, mettre une variable � la place d'une constante,...), sauf que c'est du code visual... ce qui me surprend...

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    Faite particuli�rement attention aux "#ifdef" qui encadrent les d�clarations que le pre-processeur ne trouve pas. Je pense qu'un petit nombre de constantes de compilation permettraient de rendre le vieux code plus acceptable pour le jeune compilateur.

  5. #5
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    D�tails du profil
    Informations personnelles :
    �ge : 51
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par d�faut
    Citation Envoy� par bacelar Voir le message
    Faite particuli�rement attention aux "#ifdef" qui encadrent les d�clarations que le pre-processeur ne trouve pas. Je pense qu'un petit nombre de constantes de compilation permettraient de rendre le vieux code plus acceptable pour le jeune compilateur.
    C'est typiquement le cas de _USE_32BIT_TIME_T, par exemple...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au s�rieux, de toutes fa�ons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum ad�quat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  6. #6
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2009
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2009
    Messages : 9
    Par d�faut
    J'ai fini par trouver une solution, mais dont les implications m'�chappent...

    Le projet fait r�f�rence � des biblioth�ques qui se trouvent sur un lecteur externe (lecteur N:\ pour info). Le chemin de ce lecteur �tait indiqu� dans les propri�t�s d'un projet qui refusait de compiler (dans Propri�t�s de configuration/ C C++/ G�n�ral/ autres fichiers Include).
    J'avais pr�c�demment r�solu cette erreur de compilation en supprimant ce chemin des pages de propri�t�s du projet, et en le mettant dans Outils/Options puis Projets et Solutions/ r�pertoires de VC++ puis s�lectionner dans le menu d�roulant de gauche "Fichiers Include".

    Le projet en question compilait alors, mais pas le projet global, d�pendant des 5 autres. Apr�s multiples essais et recherches en tout genre, je me suis rendu compte que ce dernier projet faisait r�f�rence, dans ses propri�t�s, au chemin du lecteur N:\. La solution pour faire compiler la solution compl�te a alors consist� en la suppression de la r�f�rence � N:\ dans les propri�t�s du dernier projet (N:\ �tant n�anmoins recens� dans les fichiers Include globaux). Ou comment passer de 7650 erreurs � 160 (r�solvables).

    C'est pas tr�s tr�s propre... Heureusement, il s'agit de la seule solution sur laquelle je travaille avec Visual studio.

    En r�sum�, j'ai supprim� la r�f�rence � un dossier d'include des propri�t�s des projets, pour le mettre une unique fois dans Outils/options. La double r�f�rence � ce dossier d'include ne convenait pas au compilateur. Chose �trange, l'inclusion dans les propri�t�s de chaque projet ne convenait pas non plus, et il a fallu le mettre une seule et unique fois dans les options globales de compilation.

    A ce jour, la solution compile! (ne linke pas encore, mais c'est une autre histoire...)
    Merci pour votre aide!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 29/04/2014, 12h46
  2. erreur dans les liens internes � une page
    Par webfds dans le forum Langage
    R�ponses: 4
    Dernier message: 12/10/2010, 18h59
  3. Erreur de compilation dans les fichier d'en-t�te
    Par belgariel dans le forum Linux
    R�ponses: 5
    Dernier message: 02/03/2010, 10h05
  4. R�ponses: 3
    Dernier message: 11/06/2009, 17h49
  5. [Servlet] Erreur dans le fichier web.xml
    Par Crazyblinkgirl dans le forum Servlets/JSP
    R�ponses: 4
    Dernier message: 05/07/2004, 15h20

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