wwinmain example c++ c string char tchar

c++ - wwinmain - createwindow example



¿Cuál es la forma más sencilla de convertir char[] a/de tchar[] en C/C++(ms)? (8)

Aunque en esta situación particular, creo que el TChar es un personaje amplio, solo necesitaré hacer la conversión si no es así. que debo verificar de alguna manera.

if (sizeof(TCHAR) != sizeof(wchar_t)) { .... }

Lo bueno de esto es que ambos tamaños de los iguales son constantes, lo que significa que el compilador manejará (y eliminará) el if (), y si son iguales, eliminará todo lo que esté dentro de los paréntesis

Esto parece una pregunta bastante suave, pero siempre me cuesta buscar esta función porque parece que hay tantas variaciones con respecto a la referencia de char y tchar.


La forma más simple es usar las macros de conversión:

  • CW2A
  • CA2W
  • etc ...

MSDN


TCHAR es un typedef específico de Microsoft para char o wchar_t (un carácter ancho).

La conversión a char depende de cuál de estos es en realidad. Si TCHAR es realmente un char, puedes hacer un molde simple, pero si es realmente un wchar_t, necesitarás una rutina para convertir conjuntos de caracteres. Ver la función MultiByteToWideChar ()


Aquí está el código CPP que duplica _TCHAR * argv [] a char * argn [].

http://www.wincli.com/?p=72

Si está adoptando un código anterior para Windows, el uso simple define mencionado en el código como opcional.



Puedes poner la condición en tu código

ifdef _UNICODE

{// HAGA GUSTO DE QUE TCHAR ES WIDE CHAR} ELSE {// DOKE TCHAR IS CHAR}