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 :

Conversion CString WCHAR


Sujet :

MFC

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Par défaut Conversion CString WCHAR
    bonjour,
    Je suis en train de développer une application vocale que je voudrais intégrer dans une application faite avec les MFC.
    Je dois envoyer a mes méthodes une chaîne de caractères de type WCHAR pour qu'elles fonctionnent.
    Je souhaite récupérer une phrase via l'application mais celle ci me crée une CString.
    J'ai cherché sur le net une façon de convertir cette CString en WCHAR mais je n'ai pas trouvé.

    Si quelqu'un connait un méthode,
    Merci d'avance

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    WCHAR est un caractère 16 bits unicode alors que le CString est une classe MFC qui correspond à une chaîne de caractères complète.
    Donc le CString que tu récupères doit être envoyé soit dans un tableau de WCHAR, soit dans un WCHAR*.

    De plus, il faut savoir si tu es en UNICODE ou en ANSI. Le principe, c'est de faire une copie du buffer correspondant au CString dans l'espace mémoire de ta chaîne en WCHAR. Seulement, il faut savoir dans quel cas tu te situes, car l'unicode te donne des caractères en 16bits alors que l'ansi t'en donne en 8bits...
    Tiens-moi au courant!

  3. #3
    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
    Avec une version récente de MFC, tu peux utiliser une CStringW qui est toujours constituée de WCHARs.
    Et là, tu pourras librement utiliser l'opérateur de conversion en LPCWSTR (const WCHAR *) ou si nécessaire, la fonction membre GetBuffer() qui t'offre un LPWSTR (WCHAR *)...
    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. Conversion CString -> wstring
    Par loupdeau dans le forum MFC
    Réponses: 5
    Dernier message: 08/11/2008, 22h15
  2. Conversion CString en const char*
    Par LRobi dans le forum MFC
    Réponses: 8
    Dernier message: 19/07/2005, 12h12
  3. Conversion CString -> CTime/Systemtime
    Par Manson dans le forum MFC
    Réponses: 2
    Dernier message: 22/06/2005, 11h27
  4. conversion CString --> LPCWSTR
    Par lyim dans le forum MFC
    Réponses: 8
    Dernier message: 19/05/2005, 12h44
  5. conversion CString
    Par latisane dans le forum MFC
    Réponses: 1
    Dernier message: 19/05/2005, 09h51

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