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