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

 C++ Discussion :

Migration de code sous VS 2010


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Migration de code sous VS 2010
    Bonjour,
    Je suis un newbie en C++. J'ai par contre une maitrise de C#.
    Je dois rendre compatible une application en C++ sous windows 7. Cette application a été compilée sous VS 2003 (il me semble). Je l'ai lancée sous VS 2010 et j'essaie de la compiler mais j'ai un tas d'erreurs, je ne sais pas par où commencer.
    Quelle est la bonne démarche pour migrer du code C++ compilé en 2003 vers du code c++ compilé en VS 2010?

    Merci de votre retour.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    - lancer la compilation
    - fixer la première erreur
    - repeat
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour commencer, est-ce du C++ natif, ou du Managed C++?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Pour commencer, est-ce du C++ natif, ou du Managed C++?
    Comment le savoir? ya des propriétés particulières?

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Des mots-clés comme __gc, __value, etc. indiquent un usage de Managed C++.

    En gros, du C++ ciblant le Framework .Net, au lieu de faire un programme C++ "indépendant". C'est typiquement sous VS 2003 qu'on en faisait, car dès Visual 2005, Microsoft a créé C++/CLI qui est bien plus facile et élégant à utiliser.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Des mots-clés comme __gc, __value, etc. indiquent un usage de Managed C++.

    En gros, du C++ ciblant le Framework .Net, au lieu de faire un programme C++ "indépendant". C'est typiquement sous VS 2003 qu'on en faisait, car dès Visual 2005, Microsoft a créé C++/CLI qui est bien plus facile et élégant à utiliser.
    Oui c'est bien du code managé !
    D'ailleurs j'ai ce genre d'erreur que je ne sais pas comment corriger :
    Error 6 error C4980: '__value'*: l'utilisation de ce mot clé requiert l'option de ligne de commande /clr:oldSyntax
    ou encore
    Error 114 error C2440: 'initialisation'*: impossible de convertir de 'cli::array<Type,dimension> ^' en 'wchar_t []'

    Error 115 error C2227: la partie gauche de '->Length' doit pointer vers un type class/struct/union/générique

    Merci de ton aide !

  7. #7
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Il y a 3 langages :
    - Le C++
    - Le managed C++, première tentative d'interface du C++ avec le monde .NET
    - Le C++/CLI, seconde tentative pour le même objectif.

    Ton code est en managed C++, mais par défaut, il essaye en VC++2010 de le compiler en C++/CLI, d'où les erreurs. Ensuite, à toi de voir ce que tu préfères :
    - Continuer en managed-C++ (quitte à redescendre de version de compilateur, mais a priori tu dois pouvoir configurer ton projet pour qu'il marche ainsi (c'est le /clr:oldsyntax du message d'erreur)
    - Porter le code vers C++/CLI. Ce qui demande de comprendre un peu le managed C++ et le C++/CLI...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    La solution "à court terme" est /clr:oldsyntax. Mais si tu veux pouvoir faire évoluer le code, il serait plus prudent de le porter en C++/CLI.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [AC-2010] Code VBA à implanter sous Access 2010
    Par develalex dans le forum Access
    Réponses: 15
    Dernier message: 07/07/2015, 18h46
  2. [Débutant] migration de code sources sharepoint 2007 vers 2010
    Par roubi dans le forum SharePoint
    Réponses: 7
    Dernier message: 13/09/2012, 09h03
  3. Compiler un code sous windows
    Par KORTA dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 30/09/2003, 16h53
  4. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

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