Quel est le moyen le plus simple pour convertir des char []/à partir de tchar[] en C/C++(ms)?
Cela semble être une très softball question, mais j'ai toujours un moment difficile à la recherche de cette fonction, car il semble qu'il existe beaucoup de variantes concernant le référencement de char et tchar.
Vous devez vous connecter pour publier un commentaire.
MultiByteToWideChar mais aussi voir "Quelques-uns des pièges de MultiByteToWideChar".
La façon la plus simple est d'utiliser les macros de conversion:
MSDN
TCHAR est spécifique à Microsoft typedef pour char ou wchar_t (un caractère large).
Conversion en char, dépend du il est réellement. Si TCHAR est en fait un char, alors vous pouvez faire une distribution simple, mais si c'est vraiment un wchar_t, vous aurez besoin d'une routine de convertir entre les jeux de caractères. Voir la fonction MultiByteToWideChar()
Il y a quelques réponses dans ce post, surtout si vous êtes à la recherche d'une solution multi-plateforme:
UTF8/à partir de l'échelle de char de conversion dans la STL
La chose cool à propos de qui est à la fois des tailles de l'est égal sont des constantes, ce qui signifie que le compilateur va gérer (et supprimer) le si(), et si elles sont égales, retirez tout à l'intérieur des accolades
Ici est le RPC code qui duplique _TCHAR * argv[] pour char * argn[].
http://www.wincli.com/?p=72
Si vous l'adoption de l'ancien code de Windows, simple d'utilisation définir mentionnés dans le code comme facultatif.
Vous pouvez mettre une condition dans votre code
ifdef _UNICODE
{ //FAIRE COMME TCHAR EST LARGE CHAR } ELSE { //FAIRE COMME TCHAR EST CHAR }
Je me rends compte que c'est un vieux thread, mais il ne m'obtenez pas la "bonne" réponse, je suis en ajoutant maintenant.
La façon dont cela semble être fait maintenant est d'utiliser la macro de TEXTE. L'exemple de FindFirstFile msdn à l'adresse des points de cette sortie.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v=vs.85%29.aspx