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 :

[visual c++ 6] Unicode vs. MBC


Sujet :

Visual C++

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut [visual c++ 6] Unicode vs. MBC
    Bonjour tout le monde,

    Je voudrais connaître la différence entre Unicode et Multibyte et comment décider si on va travailler avec l'un ou l'autre.

    Est ce que l'utilisation de la macro _T dans un projet implique que ce projet supporte l'unicode?


    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 63
    Points : 38
    Points
    38
    Par défaut
    La macro _T sert justement à ce que tu puisses compiler en unicode ou non

    Une chaine _T("coucou") correspondra à "coucou" sans unicode et à L"coucou" avec unicode.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    J'ai pas compris

  4. #4
    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
    J'avais commencé un super post, puis j'ai bêtement appuyé sur Ctrl-R au lieu de Shift-R.
    En bref:
    • Mode normal: TCHAR=char, LPCTSTR=const char*, _T("coucou") = "coucou".
    • Mode unicode: TCHAR=wchar_t, LPCWSTR=const wchar_t*, _T("coucou")= L"coucou".

    Utiliser la macro _T() dans un projet est une des choses à faire si l'on veut que son projet compile dans les deux modes.
    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 du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Merci, c'est très clair.

    Mais pq la distinction entre les 2 modes?

    Pour rendre un projet compatible avec les 2 modes en compilation, qu'est qu'il faut rajouter à part la macro _T?

  6. #6
    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
    Il faut utiliser les fonctions utilisant des TCHAR en toutes circonstances : Utiliser _tmain() au lieu de main() ou wmain(), utiliser les fonctions de <tchar.h> (ex: _tcslen() au lieu de strlen()), etc.

    Et pour les cas où tu veux explicitement travailler avec des char ou des wchar_t, utiliser explicitement la fonction Win32 correspondante (exemple: MessageBoxA() ou MessageBoxW() au lieu de MessageBox()...)
    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. Passage de MBCS à Unicode
    Par jcloupgarou dans le forum C++
    Réponses: 4
    Dernier message: 20/09/2011, 11h55
  2. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  3. Conversion MBCS vers UNICODE
    Par stephdim dans le forum MFC
    Réponses: 3
    Dernier message: 02/03/2009, 15h27
  4. [MFC]Unicode en visual c++ 7.0 erreur linkage
    Par kinhelios dans le forum Visual C++
    Réponses: 1
    Dernier message: 10/01/2007, 15h13
  5. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15

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