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 :

Passage en Unicode


Sujet :

C++

  1. #1
    Membre habitué Avatar de kkt8
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 472
    Points : 193
    Points
    193
    Par défaut Passage en Unicode
    J'ai un vieux (de chez vieux!!!) code que je veux passer en unicode.
    Que dois-je faire avec mes LPCSTR, mes char ... ? tous les transformer en LPCWSTR et Wchar ???? plus j'avance et plus je recule c déprimant !!!

    d'avance merci je sais plus trop comment procéder

  2. #2
    Membre averti Avatar de Trunks
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Points : 412
    Points
    412
    Par défaut
    Le mieux est d'utiliser la forme T (LP(C)TSTR, (const) TCHAR*) qui accepte à la fois la version Unicode et Ansi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifdefine _UNICODE
    typedef LPTSTR LPWSTR
    #else
    typedef LPTSTR LPSTR
    #endif
    Pour convertir de l'Ansi vers l'Unicode (et réciproquement), tu as la fonction WideCharToMultiByte et WideMultiByteToChar.

  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
    Et pour tes chaînes, la macro TEXT() ou _T().

    En fait, dans cette histoire, les seuls problèmes viennent des fonctions qui n'existent pas en version TCHAR. Dans ce cas, à moins d'utiliser MFC ou ATL (et un Visual Studio strictement supérieur à 6), il est assez difficile de faire directement des conversions LPCTSTR -> LPCWSTR et inversement, sans avoir à mettre de #ifdef.

    Si tu possèdes une version récente de ATL ou MFC, tu peux utiliser les classes de chaîne CString/CStringA/CStringW, ou les classes de conversion CT2A/CT2W etc.
    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: 2
    Dernier message: 29/01/2015, 14h45
  2. [WD16] Passage en unicode
    Par Christophe Charron dans le forum WinDev
    Réponses: 4
    Dernier message: 10/03/2011, 15h18
  3. Problème avec le passage à l'unicode
    Par TsCyrille dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 02/04/2010, 09h52
  4. Passage à l'unicode
    Par rivierebruno22 dans le forum Langage
    Réponses: 6
    Dernier message: 13/02/2009, 20h05
  5. Passage vers Unicode
    Par cjacquel dans le forum MFC
    Réponses: 10
    Dernier message: 16/04/2007, 14h36

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