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 :

convertir de '_TCHAR *' en 'std::string


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut convertir de '_TCHAR *' en 'std::string
    Bonjour,
    J'arrive pas à convertir un _TCHAR en std::string, comment j peux la faire
    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
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Selon tes options de compilation (unicode ou pas) TCHAR va renvoyer vers un wchat_t ou vers un char.

    Donc soit la conversion doit se faire vers std::wstring ou std::string en fonction de TCHAR et non pas systématiquement en std::string.

    Soit tu t'inspires de cette entrée de la FAQ : Comment effectuer les conversions de texte ASCII <-> Unicode ?

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    _TCHAR *hDSN;
    std::string str = std::string((char*)hDSN);

  4. #4
    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
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par 3aychoucha Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    _TCHAR *hDSN;
    std::string str = std::string((char*)hDSN);
    Si tu compiles en unicode, tu risque d'avoir des surprises

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut
    effectivement
    je ne récupère que le premier caractère
    Comment je peux alors résoudre ce problème
    j'ai cru que ça marche aussi en unicode puisqu'il n'a pas généré de problème
    alors comment je peux faire une conversion ou un cast qui marche en unicode ou en mbcs
    Merci

  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
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par 3aychoucha Voir le message
    Comment je peux alors résoudre ce problème
    Citation Envoyé par 3DArchi Voir le message
    Salut,
    Selon tes options de compilation (unicode ou pas) TCHAR va renvoyer vers un wchat_t ou vers un char.

    Donc soit la conversion doit se faire vers std::wstring ou std::string en fonction de TCHAR et non pas systématiquement en std::string.

    Soit tu t'inspires de cette entrée de la FAQ : Comment effectuer les conversions de texte ASCII <-> Unicode ?

Discussions similaires

  1. convertir un CString en std::string
    Par azamharir dans le forum MFC
    Réponses: 1
    Dernier message: 04/04/2008, 09h36
  2. [FAQ]Comment convertir une std::string en AnsiString ?
    Par Invité dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/11/2006, 19h08
  3. convertir std::string en float
    Par radicalrider dans le forum SL & STL
    Réponses: 20
    Dernier message: 03/07/2006, 19h50
  4. Convertir un std::string en double.
    Par vdumont dans le forum SL & STL
    Réponses: 16
    Dernier message: 10/05/2006, 17h46
  5. convertir un char * en std::string
    Par benahpets dans le forum SL & STL
    Réponses: 12
    Dernier message: 01/05/2006, 18h15

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