Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Sezione specifica Microsoft
Per semplificare lo sviluppo di codice per vari mercati internazionali, la libreria di runtime di Microsoft fornisce mapping di testo generico specifiche di Microsoft per molti tipi di dati, routine e altri oggetti. Questi mapping sono definiti in TCHAR.H. È possibile utilizzare questi mapping di nomi per scrivere codice generico che può essere compilato per uno qualsiasi dei tre tipi di set di caratteri: ASCII (SBCS), MBCS o Unicode, in base a una costante di manifesto definita utilizzando un'istruzione #define. I mapping di testo generico sono estensioni Microsoft non compatibili con ANSI.
Direttive del preprocessore per mapping di testo generico
#define |
Versione compilata | Esempio |
|---|---|---|
_UNICODE |
Unicode (caratteri wide) |
_tcsrev esegue il mapping a _wcsrev |
_MBCS |
Caratteri multibyte |
_tcsrev esegue il mapping a _mbsrev |
Nessuno (impostazione predefinita: sia _UNICODE che _MBCS non definito) |
SBCS (ASCII) |
_tcsrev esegue il mapping a strrev |
Ad esempio, la funzione _tcsrevdi testo generico , definita in TCHAR.H, esegue il mapping a _mbsrev se _MBCS è stata definita nel programma o a _wcsrev se _UNICODE è stata definita. In caso contrario, _tcsrev viene mappata a strrev.
Il tipo di _TCHARdati generico-text , definito anche in TCHAR.H, esegue il mapping al tipo char se _MBCS è definito, al tipo wchar_t se _UNICODE è definito e al tipo char se nessuna delle costanti è definita. Altri mapping dei tipi di dati sono disponibili in TCHAR.H per praticità di programmazione, ma _TCHAR è il tipo più utile.
Mapping dei tipi di dati di testo generico
| Nome del tipo di dati di testo generico | SBCS (_UNICODE, _MBCS non definito) |
_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 oppure _TEXT |
Nessun effetto (rimosso dal preprocessore) | Nessun effetto (rimosso dal preprocessore) |
L (converte il carattere o la stringa seguente nell'equivalente Unicode) |
Per un elenco completo dei mapping di testo generico di routine, variabili e altri oggetti, vedere Mapping di testo generico.
Nei seguenti frammenti di codice viene illustrato l'utilizzo di _TCHAR e _tcsrev per il mapping a modelli MBSC, Unicode e SBCS.
_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);
Se _MBCS è stato definito, il preprocessore esegue il mapping del frammento precedente al codice seguente:
char *RetVal, *szString;
RetVal = _mbsrev(szString);
Se _UNICODE è stato definito, il preprocessore esegue il mapping dello stesso frammento al codice seguente:
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
Se entrambi _MBCS e _UNICODE non sono stati definiti, il preprocessore esegue il mapping del frammento al codice ASCII a byte singolo, come indicato di seguito:
char *RetVal, *szString;
RetVal = strrev(szString);
Queste macro consentono di scrivere, gestire e compilare un singolo file di codice sorgente usando routine specifiche di tutti e tre i tipi di set di caratteri.
Fine sezione specifica Microsoft
Vedi anche
Mapping di testo generico
Mapping dei tipi di dati
Mapping di variabili costanti e globali
Mapping di routine
Un programma generico di esempio