[C con Clase] c y unicode

Steven Davidson srd4121 en njit.edu
Mie Sep 1 00:23:05 CEST 2010


Hola Adolfo,

On 8/31/2010 4:39 PM, Adolfo Cárdenas wrote:
> He tratado de usar
> #define  UNICODE

Recuerda que debes #definir este símbolo antes de #incluir <windows.h>.

> TextOut(oohdc, oox, ooy, (WCHAR*)lineas[i], 10);
> donde lineas es un array de punteros a char
> y me salen cuadraditos,
> el texto que guarde tiene letras arabes y lo guarde como texto unicode
> ¿estoy bien?
>

Debería funcionar si guardaste el ".cpp" usando Unicode. Asegúrate de 
que usaste 'lineas' correctamente. Yo hice esto mientras hacía pruebas:

TCHAR szMensaje[] = TEXT( "ﺰﺃﻷﻮ" );
int n = sizeof szMensaje / sizeof szMensaje[0];
TextOut( hdc, 50,50, szMensaje, n );

(Nota: He escrito algunas letras árabes en el código de arriba, por si 
acaso no aparecen.)
(Nota 2: No tengo ni idea de árabe.)

Como puedes ver, uso 'TCHAR' y la macro 'TEXT()'. Así no tienes que 
estar convirtiendo. Además, la conversión no es tan sencilla como 
indicar 'WCHAR' y ya está.

La otra forma es indicando los códigos directamente. Por ejemplo,

TCHAR szMensaje[] = TEXT( "\xfeb0\xfe83\xfef7\xffee" );
int n = sizeof szMensaje / sizeof szMensaje[0];
TextOut( hdc, 50,50, szMensaje, n );


Espero haber aclarado un poco el tema.

Steven





Más información sobre la lista de distribución Cconclase