Share via


Usando mapeamentos de texto genérico

Específico da Microsoft

Para simplificar o desenvolvimento do código para vários data marts internacionais, a biblioteca de tempo de execução do Microsoft fornece mapeamentos específicos da microsoft “genérico- texto” 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: SBCS ASCII (), MBCS, ou Unicode, como uma constante manifesta você define usando uma instrução de #define . Os mapeamentos de Genérico- texto são as extensões da Microsoft que não são ANSI compatível.

Políticas de pré-processador para mapeamentos de Genérico- texto

#define

Versão compilada

Exemplo

_UNICODE

Ampla caractere Unicode ()

mapas de_tcsrev a _wcsrev

_MBCS

Multibyte-caractere

mapas de_tcsrev a _mbsrev

Nenhum (a opção: nem _UNICODE ou _MBCS definidas)

SBCS (ASCII)

mapas de_tcsrev a strrev

Por exemplo, a função _tcsrevde genérico- texto, definido em TCHAR.H, mapas na mbsrev se MBCS foi definido em seu programa, ou a _wcsrev se _UNICODE foi definido. Se não mapas de _tcsrev a strrev.

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

Mapeamentos de tipo de dados de Genérico- texto

Nome do tipo de dados de Genérico- texto

SBCS (_UNICODE, _MBCS não definidos)

_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 (cancelado por pré-processador)

Nenhum efeito (cancelado por pré-processador)

L (converte após o caractere ou cadeia de caracteres à sua contraparte Unicode)

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

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

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

Se MBCS foi definido, o pré-processador mapeia o fragmento anterior ao seguinte código:

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

Se _UNICODE foi definido, o pré-processador mapeia o mesmo fragmento o seguinte código:

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

Se nem nem _MBCS_UNICODE foram definidas, o pré-processador mapeia o fragmento ao código ASCII de byte único, como segue:

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

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

FINALIZAR Específico da Microsoft

Consulte também

Referência

Mapeamentos de texto genérico

Mapeamentos de tipo de dados

Constante e mapeamentos de variável global

Mapeamentos de rotina

Um programa de texto genérico de exemplo