Bonjour,
savez-vous comment faire pour convertir une chaine TCHAR* en char* ?
merci
Bonjour,
savez-vous comment faire pour convertir une chaine TCHAR* en char* ?
merci
Bah, un TCHAR c'est déjà un char si UNICODE n'est pas défini, si UNICODE est défini TCHAR est défini à wchar_t. Ta question serait-elle comment convertir un wchar_t en caractère multioctet (représentable par un char dans le jeu de caractères ANSI) ? Il y a wcstombs (wide character string to multibyte string), déclarée dans stdlib.h. C'est du domaine du C standard, rien à voir avec Windows. La fonction mbstowcs réalise l'inverse.
TCHAR* en char*, c'est assez agaçant en C, ou en C++ sans MFC, ou en C++ avec un MFC trop vieux, car il n'y a rien de pratique pour ça.
Typiquement en C, il faut du #ifdef :
Alors qu'en C++ sous MFC récent, c'est tout simple:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TCHAR * chaineT = ... ; #ifdef UNICODE /* TCHAR = wchar_t : convertir. */ #else /* TCHAR = char : copier ou réutiliser le pointeur. */ #endif
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CString chaineT; CStringA chaineA(chaineT); //Et hop, chaineA est toujours une chaine de char. //On peut récupérer un const char* dessus, //ou utiliser GetBuffer() pour avoir un char*...
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager