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

Windows Discussion :

Probleme avec la fonction _T() (voir tchar)


Sujet :

Windows

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut Probleme avec la fonction _T() (voir tchar)
    Bonjour,

    Je suis désolé de poser cette question qui va surement vous paraitre un poil ridicule, mais avec la fonction _T() on transforme une string en .. une suite de chiffres, qui pourrait peut-etre etre de l'unicode si j'en crois mon survolage de google, mais bon.

    Mon probleme, donc, est que je ne sais pas du tout comment repasser de cette suite de chiffres vers la string d'origine.

    Y aurait il une fonction qui pourrait selon vous me sauver la vie ?

    Merci d'avance.
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    _T() n'est pas une fonction mais une macro qui permet de définir des chaines de caractères ANSI et UNICODE de façon unifiée.

    Ca fonctionne de paire avec le type TCHAR.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const TCHAR chaine[32] = _T("ma chaine");
    sera compilé comme ça en ANSI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const char chaine[32] = "ma chaine";
    et comme ça en UNICODE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const wchar_t chaine[32] = L"ma chaine";
    Il n'y a normalement pas de conversions à faire, tout est transparent & automatique.
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Bon, mon probleme n'est pas tant la macro _T mais plutot que si on écrit dans un fichier par exemple une string, et a coté la meme string mais passée par la macro, on obtient la string suivit d'une suite de chiffre (unicode donc ?) et j'aimerais bien, a partir de cette suite de chiffre, retrouver la string qui se cache derriere.

    Peut etre que je suis pas tres clair, désolé.
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    ce n'est effectivement pas très clair :

    - si tu compiles en ANSI, la macro _T() n'a aucun effet (cf mon post précédent) et elle ne peut donc pas être responsable du problème décrit.

    - si tu compiles en UNICODE, poste le code incriminé et le résultat obtenu, ce sera beaucoup plus parlant.
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  5. #5
    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 surtout: T ne marche que pour les chaînes littérales. On ne peut pas faire _T(variable).
    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.

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    bon, en fait j'ai fini par trouver : j'utilise la fonction WideCharToMultiByte()

    En fait ça convertissait effectivement en unicode merci de m'avoir mis sur la voie
    Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec la fonction Ontimer
    Par Djule dans le forum MFC
    Réponses: 8
    Dernier message: 27/11/2005, 17h52
  2. Probleme avec la fonction rename()
    Par TheZenZen dans le forum C
    Réponses: 6
    Dernier message: 08/10/2005, 15h59
  3. [LG] Problème avec la Fonction ReadLn en fin de programme
    Par killermano dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2005, 15h16
  4. [LG]Probleme avec une fonction
    Par xavier1936 dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2005, 22h48

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