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