Supporto Unicode e con i set di caratteri multibyte (MBCS)
Alcuni linguaggi, ad esempio, giapponese e cinese, hanno set di caratteri estesi.Per la programmazione di supporto per i mercati, la libreria Microsoft Foundation classes (MFC) è abilitata per due approcci diversi di gestire i set di caratteri estesi:
Unicode
Set di caratteri multibyte (MBCS)
Supporto MFC per le stringhe Unicode
L'intera libreria di classi è attivata in modo condizionale per i caratteri unicode e stringhe.In particolare, la classe CString specifico è abilitata.
UAFXCW.LIB |
UAFXCW.PDB |
UAFXCWD.LIB |
UAFXCWD.PDB |
MFCxxU.LIB |
MFCxxU.PDB |
MFCxxU.DLL |
MFCxxUD.LIB |
MFCxxUD.PDB |
MFCxxUD.DLL |
MFCSxxU.LIB |
MFCSxxU.PDB |
MFCSxxUD.LIB |
MFCSxxUD.PDB |
MFCMxxU.LIB |
MFCMxxU.PDB |
MFCMxxU.DLL |
MFCMxxUD.LIB |
MFCMxxUD.PDB |
MFCMxxUD.DLL |
(xx rappresenta il numero di versione del file; ad esempio, "80 " significa versione 8,0.)
CString è basato sul tipo di dati TCHAR.Se il simbolo è definito _UNICODE di compilazione del programma, TCHAR viene definito come tipo wchar_t, un tipo di codifica dei caratteri a 16 bit.In caso contrario, TCHAR viene definito come char, la codifica dei caratteri normali a 8 bit.Di conseguenza, il formato Unicode, CString è composto dai caratteri a 16 bit.Non Unicode, si compone di caratteri di tipo char.
Per completare la programmazione Unicode dell'applicazione, è necessario anche:
Utilizzare la macro _T per codificare in modo condizionale stringhe letterali per la portabilità a Unicode.
Quando si passa le stringhe, in particolare attenzione a a se gli argomenti della funzione richiede una lunghezza in caratteri o una lunghezza in byte.La differenza importante se si utilizza le stringhe Unicode.
Le versioni portabili di utilizzo delle stringhe gestione di runtime del linguaggio C.
Utilizzare i seguenti tipi di dati per caratteri e i puntatori di carattere:
TCHAR in cui si char.
LPTSTR in cui si char*.
LPCTSTR in cui si const char*.CString fornisce l'operatore LPCTSTR per la conversione tra CString e LPCTSTR.
CString fornisce inoltre costruttori, operatori di assegnazione e gli operatori di confronto specifico di esperti.
Per informazioni relative alla programmazione Unicode, vedere Argomenti Unicode.Riferimenti alla libreria di runtime definisce le versioni portabili di tutte le funzioni di gestione delle stringhe.Vedere la categoria internazionalizzazione.
Supporto MFC per le stringhe MBCS
La libreria di classi viene abilitata per i set di caratteri multibyte, ma solo per i set di caratteri (DBCS) a byte doppio.
In un set di caratteri multibyte, un carattere può essere esteso uno o due byte.Se è a due byte, il primo byte "è un byte iniziale" speciale che viene scelto da un determinato intervallo, a seconda della tabella codici utilizzata.Utilizzato insieme, il cavo e "i byte finale" specificano una codifica dei caratteri univoca.
Se il simbolo è definito _MBCS di compilazione del programma, il tipo TCHAR, su cui è basato CString, esegue il mapping a char.È responsabilità per determinare i byte in CString i byte iniziali e quelli byte finale.Le fornisce funzioni della libreria di runtime C per determinare questo.
Nel doppio, una stringa specificata può contenere tutti i caratteri ANSI a byte singolo, tutti i caratteri DBCS, o una combinazione di due.Queste possibilità richiedono molta attenzione le stringhe di analisi.Sono inclusi gli oggetti CString.
[!NOTA]
La serializzazione della stringa Unicode in MFC può leggere sia Unicode che le stringhe MBCS indipendentemente dalla versione dell'applicazione in esecuzione.I file di dati è possibile trasferire Unicode e le versioni MBCS del programma.
Versioni speciali di testo generico" di utilizzo di funzioni membro di "CString delle funzioni di runtime del linguaggio C chiama o, utilizzano funzioni con supporto unicode.Di conseguenza, ad esempio, se una funzione CString in genere chiami strcmp, chiama la funzione corrispondente _tcscmp di testo generico.Come ad esempio i simboli _MBCS e _UNICODE sono definiti, _tcscmp esegue il mapping come segue:
_MBCS definita |
_mbscmp |
_UNICODE definita |
wcscmp |
Nessuno dei due simbolo è definito |
strcmp |
[!NOTA]
I simboli _MBCS e _UNICODE si escludono reciprocamente.
i mapping di funzione a testo generico per tutte le routine in fase di gestione delle stringhe vengono trattati in Riferimento della libreria di runtime C.In particolare, vedere Internazionalizzazione.
Analogamente, i metodi CString vengono implementati utilizzando i mapping "generici" di.Per attivare sia il formato MBCS e Unicode, MFC utilizza TCHAR per char, LPTSTR per char*e LPCTSTR per const char*.Queste forniscono i mapping corretti per Unicode o MBCS.