Compartilhar via


Usando mapeamentos de texto genérico

Microsoft específicos

Para simplificar o desenvolvimento de código para vários mercados internacionais, a biblioteca de time de execução do Microsoft fornece mapeamentos de "texto genérico" específicas da Microsoft para muitos tipos de dados, rotinas e outros objetos.Esses mapeamentos são definidos em TCHAR.H.Você pode usar esses mapeamentos de nome para escrever um código genérico que pode ser compilado para qualquer um dos três tipos de conjuntos de caractere: SBCS (ASCII), MBCS ou Unicode, dependendo de uma constante de manifesto que definir usando um #define demonstrativo. Texto genérico mapeamentos são extensões da Microsoft que não sejam ANSI compatível.

Diretivas de pré-processador para mapeamentos de texto genérico

# define

Versão compilada

Exemplo

_UNICODE

Unicode (caractere largo)

_tcsrev mapeia para _wcsrev

_MBCS

caractere multibyte

_tcsrev mapeia para _mbsrev

Nenhum (padrão: Nenhuma das _UNICODE nem _MBCS definido)

SBCS (ASCII)

_tcsrev mapeia para strrev

Por exemplo, a função de texto genérica _tcsrev, definido no TCHAR.H, mapas para mbsrev Se MBCS foi definido em seu programa, ou a _wcsrev Se _UNICODE foi definido. Caso contrário, _tcsrev mapeia para strrev.

Os dados de texto genérica digite _TCHAR, também definida em TCHAR.H, mapas de digitar char Se _MBCS for definido, digite wchar_t Se _UNICODE é definido e digitar char Se nenhuma constante for definido. Outros mapeamentos de tipo de dados TCHAR.H são fornecidos para sua conveniência, mas de programação_TCHAR é o tipo é mais útil.

Mapeamentos de tipo de dados de texto genérica

Nome do tipo de dados de texto genérica

SBCS (_UNICODE, _MBCS não definido)

_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 ou _TEXT

Nenhum efeito (removido pré-processador)

Nenhum efeito (removido pré-processador)

L (converte após o caractere ou seqüência de caracteres à sua contraparte Unicode)

Para obter uma lista completa de texto genérica mapeamentos de rotinas, variáveis e outros objetos, consulte Mapeamentos de texto genérica.

Os fragmentos de código a seguir ilustram o uso de _TCHAR e _tcsrev para mapear os modelos de MBCS, Unicode e SBCS.

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

If MBCS tiver sido definido, o pré-processador mapeia o fragmento anterior para o código a seguir:

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

If _UNICODE tiver sido definido, o pré-processador mapeia o mesmo fragmento para o código a seguir:

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

Se nenhuma das _MBCS nem _UNICODE tiver sido definido, o pré-processador mapeiam o fragmento de um byte ASCII código, da seguinte forma:

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

Assim, você pode escrever, manter e compilar um arquivo de código fonte única para executar com rotinas que são específicas para qualquer um dos três tipos de conjuntos de caractere.

participante Microsoft específicos

Consulte também

Referência

Mapeamentos de texto genérica

Mapeamentos de tipo de dados

Constante e variável global mapeamentos

Mapeamentos de rotina

Um programa de texto genérico de exemplo