Compartilhar via


Usando mapeamentos de texto genérico

Específicos do Microsoft

Para simplificar o desenvolvimento de código para vários mercados internacionais, a biblioteca de tempo 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 o código genérico que pode ser compilado para qualquer um dos três tipos de conjuntos de caracteres: ASCII (SBCS), MBCS ou Unicode, dependendo de uma constante de manifesto que você define usando um #define instrução.Mapeamentos de texto genérico são extensões do Microsoft que não sejam ANSI compatível.

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

# define

Versão compilada

Exemplo

_UNICODE

Unicode (caracteres largos)

_tcsrevmapeia para_wcsrev

_MBCS

Caracteres multibyte

_tcsrevmapeia para_mbsrev

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

SBCS (ASCII)

_tcsrev mapeia parastrrev

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

O tipo de dados de texto genérico _TCHAR, também definido no TCHAR.H, mapeia digitar char se _MBCS for definido, digite wchar_t se _UNICODE for definido e digitar char se nenhuma constante foi definida.Outros mapeamentos de tipo de dados são fornecidos no TCHAR.H para conveniência de programação, mas _TCHAR é o tipo que é mais útil.

Mapeamentos de tipo de dados de texto genérico

Nome do tipo de dados de texto genérico

SBCS (_ Unicode, _ MBCS do arquivo não definido)

_ MBCS do arquivo 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

_Tou_TEXT

Nenhum efeito (removido pelo pré-processador)

Nenhum efeito (removido pelo pré-processador)

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

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

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

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

Se MBCS foi definido, o pré-processador mapeia o fragmento anterior para o código a seguir:

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

Se _UNICODE foi 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 foi definido, o pré-processador mapeia o fragmento de código ASCII de byte único, 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 caracteres.

Específicos do Microsoft final

Consulte também

Referência

Mapeamentos de texto genérico

Mapeamentos de tipo de dados

Constantes e globais variáveis mapeamentos

Mapeamentos de rotina

Um exemplo de programa de texto genérico