Utilizzo delle mappature di Testo generico

Specifici di Microsoft

Per semplificare lo sviluppo di codice per diversi per i mercati internazionali, la libreria di runtime di Microsoft fornisce mappature di testo generico “„ per molti tipi di dati, routine e altri oggetti.questi mapping sono definiti in TCHAR.H.È possibile utilizzare questi mapping dei nomi per scrivere codice generico che può essere compilato per uno dei tre tipi di set di caratteri: ASCII (sbc), MBCS, o Unicode, come una costante del manifesto definite utilizzando un oggetto #define istruzione.le mappature di testo generico sono estensioni Microsoft che non sono ANSI compatibile.

Istruzioni del preprocessore per le mappature di testo generico

#define

Versione compilata

Esempio

_UNICODE

Unicode (a caratteri estesi)

_tcsrev corrisponde a _wcsrev

_MBCS

Caratteri multibyte

_tcsrev corrisponde a _mbsrev

Nessuno impostazione predefinita: nessuno _UNICODE né _MBCS definito)

SBC (ASCII)

_tcsrevcorrisponde a strrev

Ad esempio, la funzione di testo generico _tcsrev, definito in TCHAR.H, corrisponde a mbsrev se MBCS è stato definito nel programma, oppure _wcsrevse _UNICODEè stato definito.In caso contrario _tcsrevcorrisponde a strrev.

Il tipo di dati a testo generico _TCHAR, anche definito in TCHAR.H, corrisponde al tipo char se _MBCS viene definito, digitare wchar_t se _UNICODE viene definito e digitare char se nessuna delle due costante definita.Altre mappature di tipi di dati sono forniti in TCHAR.H per la praticità di programmazione, ma _TCHAR è il tipo che è particolarmente utile.

Mappature di tipi di dati di testo generico

nome del tipo di dati a testo generico

sbc (_UNICODE, _MBCS non definiti)

_MBCS definito

_UNICODE definito

_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 o _TEXT

Nessun effetto (eliminato dal preprocessore)

Nessun effetto (eliminato dal preprocessore)

L (conversione che seguono il carattere o la stringa corrispondente Unicode)

Per un elenco completo delle mappature di testo generico delle routine, variabili e altri oggetti, vedere Mappature di testo generico.

I frammenti di codice viene illustrato l'utilizzo di _TCHAR e _tcsrev per eseguire il mapping al formato MBCS, a Unicode e ai modelli SBCS.

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

se MBCS è stato definito, il mapping del preprocessore il frammento precedente al codice seguente:

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

se _UNICODE è stato definito, il mapping del preprocessore lo stesso frammento al codice seguente:

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

se nessuno _MBCS né _UNICODE è stato definito, il mapping del preprocessore il frammento al codice ASCII a byte singolo, come segue:

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

Pertanto è possibile scrivere, gestire e compilare un singolo file di codice sorgente per utilizzare le routine specifiche per uno dei tre tipi di set di caratteri.

Microsoft FINALE specifico

Vedere anche

Riferimenti

Mappature di Testo generico

Mapping dei tipi di dati

Mapping delle variabili globali e di costante

Mapping di routine

Un programma di Testo generico di esempio