Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Específico 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íficos 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 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 definida usando uma #define instrução. 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 (caractere largo) |
_tcsrev mapeia para _wcsrev |
_MBCS |
Caractere multibyte |
_tcsrev mapeia para _mbsrev |
Nenhum (o padrão: ambos _UNICODE e _MBCS não definidos) |
SBCS (ASCII) |
_tcsrev mapeia para strrev |
Por exemplo, a função _tcsrevde texto genérico , definida 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 _TCHARde dados de texto genérico, também definido em TCHAR.H, mapeia para digitar char se _MBCS está definido, para digitar wchar_t se _UNICODE está definido e para digitar char se nenhuma constante estiver definida. Outros mapeamentos de tipo de dados são fornecidos para conveniência de TCHAR.H programação, mas _TCHAR é o tipo que é mais útil.
Mapeamentos de tipo de dados Generic-Text
| Nome do tipo de dados de texto genérico | 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 |
Sem efeito (removido pelo pré-processador) | Sem efeito (removido pelo pré-processador) |
L (converte o seguinte caractere ou cadeia de caracteres em sua contraparte 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 mapeamento para 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 seguinte código:
char *RetVal, *szString;
RetVal = _mbsrev(szString);
Se _UNICODE tiver sido definido, o pré-processador mapeia o mesmo fragmento para o seguinte código:
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
Se tanto _MBCS quanto _UNICODE não tiverem sido definidos, o pré-processador mapeia o fragmento para um código ASCII de byte único, conforme segue:
char *RetVal, *szString;
RetVal = strrev(szString);
Essas macros permitem escrever, manter e compilar um único arquivo de código-fonte usando rotinas específicas para todos os três tipos de conjuntos de caracteres.
END Específico da Microsoft
Ver 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