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 :

problème lié a l'environnement VC++ 2008


Sujet :

Visual C++

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut problème lié a l'environnement VC++ 2008
    salut pour tous le monde
    j'ai un petit probleme avec l'environnement VC++2008
    je suis debutant
    mon probleme est peut etre plus clair dans cette capture
    avec l'expression "MesaageBox"
    le compiler me rend un message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur	1	error C2664: 'CWnd::MessageBoxW'*: impossible de convertir le paramètre 1 de 'const char [14]' en 'LPCTSTR'	d:\developpement\c++\vc++2oo8\vc++ program\vc++ program\vc++ programdlg.cpp	157	vc++ program


    tout simplement , quelle est la solution


    Et merci d'avance

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour et bienvenu,
    (Un peu de code source plutôt qu'une image aurait été tout aussi parlant et plus pratique).
    -> Soit tu supprimes l'option UNICODE de ton projet,
    -> Soit tu préfixe tes chaînes de caractère pas _T():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MessageBox(_T("Hello Word !"),_T("Hello Message"));

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut
    merci pour la reponse
    c'etait exactement ça

    mais pouvez vous (SVP) m'expliquez comment supprimer l'option "Unicode"
    des propriétés du project ?

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 122
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    De mémoire : Projet -> Propriété du projet -> une nouvelle s'ouvre, et normalement on tombe directement dessus...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    C'est bizarre que l'on conseille encore cette solution en 2009...

    Moi je dirais plutot, gardes UNICODE, et utilises wchar_t au lieu de char
    Et prefixe tes chaines avec L comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const wchar_t* szMaChaine = L"Une chaine unicode";

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par nicroman Voir le message
    C'est bizarre que l'on conseille encore cette solution en 2009...
    Ben, j'avais proposé les 2. Ensuite, à chacun selon son projet... mais tu as raison, la première permet de prendre le bon pli

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Le problème, c'est que ça bafoue mes principes, quand on programme en wchar_t, de ne pas utiliser explicitement la version W de toutes les fonctions de Windows.

    Pour utiliser la version sans suffixe, on emploie des TCHAR, voilà (heureusement, avec un Visual payant supérieur à 6, on peut convertir à peu de frais grâce à CString, CStringA et CStringW).
    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.

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Le problème, c'est que ça bafoue mes principes, quand on programme en wchar_t, de ne pas utiliser explicitement la version W de toutes les fonctions de Windows.
    Là je suis d'accord....

    Mais dans l'ordre de mes choix (ce n'est qu'un avis personnel qui n'engage que moi ! )!

    1- Utiliser des wchar_t et les fonctions suffixées W de l'API
    2- Utiliser des TCHAR et les fonctions sans suffix de l'API (et on laisse le compilo décider en fonction des options du projet).
    3- Utiliser des char et les fonctions suffixées A de l'API

    Sachant que dans (3) les fonctions A vont de toute manière convertir en wchar_t et appeler les fonctions W ...
    Et que dès qu'on programme une API, un SDK, une DLL, utiliser (2) devient une vraie plaie.

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    Personnellement, j'ai tendance à préférer 2 à 1.
    Mais bien sûr, quand j'écris une DLL, deux cas se présentent:
    • Deux traitements identiques: Je compile deux fois le même fichier source pour ma DLL, avec des options différentes.
    • Deux traitements différents: Je crée moi-même deux fonctions différentes, dans lesquelles j'appelle explicitement avec le suffixe.

    Sinon, il y a une exception dans laquelle je fais généralement du 1, c'est quand je programme un composant COM ou un truc à utiliser avec .Net.
    Et dans l'autre sens, il y a MFC, qui oblige plus ou moins à faire du 2. Mais je n'utilise quasiment jamais MFC.
    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. Réponses: 1
    Dernier message: 12/04/2007, 13h03
  2. problème getenv() variables d'environnement
    Par bobo825 dans le forum C
    Réponses: 2
    Dernier message: 10/01/2007, 19h50
  3. Problème de variable d'environnement
    Par yaya0057 dans le forum Langage
    Réponses: 3
    Dernier message: 29/12/2006, 13h49
  4. Problème avec variable d'environnement
    Par beegees dans le forum ASP
    Réponses: 7
    Dernier message: 13/12/2006, 15h29
  5. [Debutant(e)]problème de variable d'environnement
    Par tolsam dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 19h08

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