Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Seção específica da Microsoft
Para simplificar o desenvolvimento de código para vários mercados internacionais, a biblioteca de tempo de execução da Microsoft fornece mapeamentos de "texto genérico" específico da Microsoft para vários tipos de dados, rotinas e outros objetos. Esses mapeamentos são definidos em TCHAR.H. Você pode usar esses mapeamentos de nome para escrever 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 uma instrução #define. Os mapeamentos de texto genérico são extensões da Microsoft que não são compatíveis com ANSI.
Diretivas de pré-processador para mapeamentos de texto genérico
#define |
Versão compilada | Exemplo |
|---|---|---|
_UNICODE |
Unicode (caracteres largos) |
_tcsrev é mapeado para _wcsrev |
_MBCS |
Caracteres multibyte |
_tcsrev é mapeado para _mbsrev |
Nenhum (o padrão: ambos _UNICODE e _MBCS não definidos) |
SBCS (ASCII) |
_tcsrev é mapeado para strrev |
Por exemplo, a função _tcsrevde texto genérico, definida em TCHAR.H, mapeia para _mbsrev se _MBCS foi definida em seu programa ou para _wcsrev se _UNICODE foi definida. Caso contrário, _tcsrev é mapeada para strrev.
O tipo _TCHARde dados de texto genérico, também definido em TCHAR.H, mapeia para digitar char se _MBCS for definido, digitar wchar_t se _UNICODE for definido e digitar char se nenhuma constante for definida. Outros mapeamentos de tipo de dados são fornecidos TCHAR.H para conveniência de programação, mas _TCHAR é o tipo mais útil.
Mapeamentos de tipo de dados de texto genérico
| Nome do tipo de dados de texto genérico | SBCS (_UNICODEnão _MBCS 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 pelo pré-processador) | Nenhum efeito (removido pelo pré-processador) |
L (converte o próximo caractere ou a próxima cadeia de caracteres no equivalente em Unicode) |
Para obter uma lista completa de mapeamentos de texto genérico de rotinas, variáveis e outros objetos, consulte Mapeamentos de texto genérico.
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 tiver sido definido, o pré-processador mapeia o fragmento anterior para o código a seguir:
char *RetVal, *szString;
RetVal = _mbsrev(szString);
Se _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 ambos _MBCS e _UNICODE não tiverem sido definidos, o pré-processador mapeará o fragmento para o código ASCII de byte único, da seguinte maneira:
char *RetVal, *szString;
RetVal = strrev(szString);
Essas macros permitem que você escreva, mantenha e compile um único arquivo de código-fonte usando rotinas específicas para todos os três tipos de conjuntos de caracteres.
Fim da seção específica da Microsoft
Confira também
Mapeamentos de texto genérico
Mapeamentos de tipo de dados
Mapeamentos de variáveis constantes e globais
Mapeamentos de rotina
Um exemplo de programa de texto genérico