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 :

Directives de compilation


Sujet :

Visual C++

  1. #1
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut Directives de compilation
    Bonjour,

    je cherche s'il est possible de définir, en commande preprocesseur, que la compilation echoue si on ne fait pas de test sur une methode c++ qui doit retourner un booleen.

    prenons la methode static bool MaClasse::MaMethode(unsigned ...)

    maintenant dans le main si j'appel la methode de cette facon:

    MaClasse::MaMethode(1,....)

    et non pas

    if( MaClasse::MaMethode(1,....) )

    Est il possible de forcer le compilateur a detecter que je n'effectue pas de test sur la variable retournée?

    Cdt

    rikau2

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 391
    Par défaut
    Dans l'édition la plus chère de Visual Studio 2005, il y a une fonction optionnelle appelée "code analysis" qui utilise des attributs mis dans le code source pour donner des warnings.

    Mais, seulement dans l'édition la plus chère (Visual Studio 2005 Team System)...
    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.

  3. #3
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Ok thanks pour ta réponse.
    Avec la version Visual c++ 6.0 c'est possible? je veux dire est-ce que ca correspond à la version Team system?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 391
    Par défaut
    Je ne sais même pas si la Code Analysis existait à l'époque de Visual 6.
    Il faut vivre avec son temps...
    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.

  5. #5
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Vivre avec son temps..... Vivre en entreprise pour comprendre le vrai cout d'un changement de version

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 391
    Par défaut
    C'est vrai que je suis un peu de mauvaise foi, on a toujours des projets sous VC++6 au boulot.

    Mais c'est quand même vachement plus pratique sous 2005. Surtout pour les programmes MFC, quand on a des problèmes d'unicode (Où l'on a plus seulement CString, mais aussi CStringA et CStringW).
    Le plus gros projet de mon équipe, on l'a passé sous 2005 peu avant mon arrivée.
    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.

  7. #7
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    Je suis d'accord avec toi c'est plus simple sous 2005. J'ai la version via MSDN sur mon perso mais pour le travail au bureau j'ai reussi a passer sous VC++ 6.0 car avant j'etais sous MinGW et la en comparaison,, VC++ c'est la grande classe.

    Puisque tu as participé au portage de VC++ a VS 2005 peut tu me dire comment changer rapidement des problèmes de compatibilitée du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for each(char c in xxx)
     
    en for (int i=0; i< machaine.size(); i++)
    {
        chaine.at(i)....
    }
    J'entend le passage de l'un a l'autre; Option dans le compilateur? compatibilitée descendante?

    Sous VS 2005 il est possible de faire ce dont tu parlais au début du topic? (avec VC team....)

    Finalement, une derniere question:
    Est il possible de configurer de manière simple, et sans que cela mette la pagaille dans mon registre (j'avais utilisé le didac du site), Qt pour l'utiliser sur un poste Windows XP Home Edition? La derniere fois que j'ai tente la configurqation, j'ai du reinstaller VS2005.

    Y a t'il eu des evolutions pour permettre un portage vers VS 2005?

    Cdt

    rikau2

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 391
    Par défaut
    Euh... for each, c'est supposé exister sous Visual 6 ?
    Pour moi, c'est du .Net, ça...
    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.

  9. #9
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    En effet en .Net tu l'as mais sous VS 2005, tu peux utiliser le for each en programmation c++ car VS utilise le meme SDK dans les 2 cas (normalement) et les memes lib.

    Le fait que justement tu puisses faire des choses de ce genre avec du VS 2005 pose problème lorsque tu repasses en VC++ 6.0 (besoins pro obligent). Y a t'il alors possibilité de configurer le Compilateur pour qu'il accepte exactement et exclusivement les biblio standard et qui assurent une compatibilitée ascendante et descendante?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 391
    Par défaut
    Il y a toujours une options "Disable language extensions" sous 2005, mais ça désactivera aussi celles de Visual 6.

    Mais NON, tu ne peux pas utiliser le for each en programmation C++ native, car même si le for each lui-même passe, il ne marche que sur les types managés:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	int abc[3];
    	for each(int a in abc) //provoque une erreur C3285
    	{
    	}
    Erreur C3285

    Pour moi, si tu programmes en natif, tu programmes en natif.
    Mais si tu passes à VS2005, ce n'est pas pour repasser à Visual 6 : Cela équivaudrait à retourner aux bugs de Visual 6 (notamment au niveau C++ et templates), et dans le cas de MFC, à une version de MFC trop vieille pour être pratique quand tu dois mixer de l'unicode avec du non-unicode ou du TCHAR.
    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.

  11. #11
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    En fait, au travail je n'ai que VC++ et MinGW, et à mon domicile, je travail sous VS 2005. Mon projet sera définitivement compilé sous MinGW quand j'integrerai l'interface graphique réalisée sous Qt.

    Ce que je recherche est donc un moyen de m'assurer que le code écrit sous VS compilera sans aucune erreur sous VC.

    Pour le for each, chez moi ca fonctionne au run en c++ programmé sous VS sans erreures.

    Pas d'infos pour Qt sous VS 2005?



    rikau2

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/02/2006, 15h42
  2. Directives de compilation pour g++
    Par Jfrancois57 dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 09/11/2005, 11h23
  3. Directives de compilation (globales ?)
    Par korntex5 dans le forum Langage
    Réponses: 6
    Dernier message: 24/10/2005, 14h13
  4. directive de compilation
    Par gandf dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/02/2005, 10h46
  5. Directives de compilations.
    Par ushu dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2003, 10h44

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