Usar asignaciones de texto genérico

Específicos de Microsoft

Para simplificar el desarrollo de código para los diferentes mercados internacionales, la biblioteca en tiempo de ejecución de Microsoft proporciona las asignaciones Microsoft- específicas de “genérico- texto” para muchos tipos de datos, rutinas, y otros objetos. Estas asignaciones se definen en TCHAR.H. Puede utilizar estas asignaciones de nombre para escribir código genérico que se puede compilar para cualquiera de los tres tipos de juegos de caracteres: ASCII (SBCS), MBCS, o Unicode, dependiendo de la constante de manifiesto se define mediante una instrucción #define . Las asignaciones de Genérico- texto son extensiones de Microsoft que no son compatibles con ANSI.

Directivas de preprocesador para asignaciones de texto genérico

#define

Versión compilada

Ejemplo

_UNICODE

Unicode (carácter ancho)

_tcsrev se asigna a _wcsrev

_MBCS

Carácter multibyte

_tcsrev se asigna a _mbsrev

Ninguno (el valor predeterminado: ni _UNICODE ni _MBCS definido)

SBCS (ASCII)

mapas de_tcsrev a strrev

Por ejemplo, la función _tcsrevde genérico- texto, definido en TCHAR.H, asigna a mbsrev si MBCS definida en el programa, o a _wcsrev si se ha definido _UNICODE . Si no asigna de _tcsrev a strrev.

El tipo de datos _TCHARde genérico- texto, también definido en TCHAR.H, mapas para escribir char si se define _MBCS , escribir wchar_t si se define _UNICODE , y escribir char si se ha definido ninguna de las dos constantes. Otras asignaciones de tipos de datos se proporcionan en TCHAR.H por comodidad de programación, pero _TCHAR es el tipo que es el más útil.

Asignaciones de tipos de datos de texto genérico

Nombre del tipo de datos de Genérico- texto

SBCS (_UNICODE, _MBCS no definidos)

_MBCS definido

_UNICODE definido

_TCHAR

char

char

wchar_t

_TINT

int

int

wint_t

_TSCHAR

signed char

signed char

wchar_t

_TUCHAR

unsigned char

unsigned char

wchar_t

_TXCHAR

char

unsigned char

wchar_t

_T o _TEXT

Sin efecto (quitado por el preprocesador)

Sin efecto (quitado por el preprocesador)

L (convierte después de caracteres o de cadena a su equivalente de Unicode)

Para obtener una lista completa de las asignaciones de genérico- texto de rutinas, variables, y otros objetos, vea Asignaciones de Genérico- texto.

Los fragmentos de código se muestra el uso de _TCHAR y de _tcsrev para asignar el MBCS, a Unicode, y a los modelos de SBCS.

_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);

Si se ha definido MBCS , el preprocesador asigna el fragmento anterior al código siguiente:

char *RetVal, *szString;
RetVal = _mbsrev(szString);

Si se ha definido _UNICODE , el preprocesador asigna el mismo fragmento al código siguiente:

wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);

Si no se han definido _MBCS ni _UNICODE , el preprocesador asigna el fragmento a código ASCII del solo- byte, como sigue:

char *RetVal, *szString;
RetVal = strrev(szString);

Así puede escribir, mantener, y compilar un único archivo de código fuente para ejecutarse con rutinas específicas de cualquiera de los tres tipos de juegos de caracteres.

FIN de Específicos de Microsoft

Vea también

Referencia

Asignaciones de texto genérico

Asignaciones de tipos de datos

Asignaciones de constantes y de variables globales

Asignaciones de rutinas

Ejemplo de programa de texto genérico