convertir un char a tchar, wchar etc.

Iniciado por YagamiIori2002, 23 Abril 2012, 21:35 PM

0 Miembros y 1 Visitante están viendo este tema.

YagamiIori2002

Hola como estan. tengo una pregunta que no he podido resolver si alguien sabe por favor me gustaria que me ayudaran  como puedo convertir un char a TCHAR o WCHAR? estoy pasando datos de un cliente a un servidor y viceversa y obviamente tienes que mandarlo en forma de char luego convertir para que sean visibles en un treeview o listview o algo por el estilo. de antemano gracias.

BlackZeroX

#1
TCHAR puede tornarse WCHAR o char segun sea UNICODE

Windows Data Types

Dulces Lunas!¡.
The Dark Shadow is my passion.

x64core

usa la funcion mbtowc, tan sencillo  :rolleyes:

YagamiIori2002

#3
Realmente funciono(mbtowc), pero solo con una sola letra( laprimera)  lo probe con un ciclo y solo una letra me funciona por ejemplo si es "system" solo funciona con la "s" y las demas ya no.
este es el codigo:
mbtowc( widechar(donde se guarda la variable), buff_nom2(donde proviene),  length(numero a copiar));

espero y alguien me ayude.

BlackZeroX

#4
si lo vas a imprimir en la consola OBVIO solo se imprimira la 1ra letra (si existiese) pues cada letra puede que este separada por bytes '\0' (nulos) es decir los que indican el final de una cadena ANSI... prueba a mostrarla con un MessageBoxW()... o checa la memoria...

ANSI: system
UNICODE: s y s t e m (Donde cada espacio es un byte o caracter '\0' nulo)... el termino se indica con 2 bytes '\0' nulos.

Dulces Lunas!¡.
The Dark Shadow is my passion.

Karman

Cita de: BlackZeroX (Astaroth) en 26 Abril 2012, 10:13 AMsi lo vas a imprimir en la consola OBVIO solo se imprimira la 1ra letra (si existiese) pues cada letra puede que este separada por bytes '\0' (nulos) es decir los que indican el final de una cadena ANSI... prueba a mostrarla con un MessageBoxW()... o checa la memoria...

no necesariamente, puedes escribir texto unicode en la consola usando "%ws" (WideString):

printf("%ws",L"texto unicode");

S2

YagamiIori2002

con MessageBoxW() si lo muestra eso ya lo habia probado y en la depuracion me muestra todas las cadena de caracteres y toda esta junta sin ninguna separacion o sea que no hay byts nullo, no lo quiero imprimir en consola quiero imprimir una cadena de char(son las que viene del server y no puedo modificar) esa cadena de caracteres quiero que la imprima en una ventana con treeview el problema es que no puedo realizar esa accion convertir la cadena.. :huh: