Unicode- und des Multibyte-Zeichensatz-(MBCS) Unterstützung
Einige Sprachen beispielsweise Japanisch und Chinesisch, haben große Zeichensätze.Um Programmierung für diese Märkte zu unterstützen, wird die Microsoft Foundation Class-Bibliothek " (MFC-Bibliothek) für zwei verschiedene Ansätze zum Behandeln von umfangreichen Zeichensätzen aktiviert:
Unicode
Mehrbyte-Zeichensätze (MBCS)
MFC-Unterstützung für Unicode-Zeichenfolgen
Die gesamte Klassenbibliothek wird bedingt für Unicode-Zeichen und - aktiviert.Insbesondere wird Klasse CString Unicode-aktiviert.
UAFXCW.LIB |
UAFXCW.PDB |
UAFXCWD.LIB |
UAFXCWD.PDB |
MFC xx U.LIB |
MFC xx U.PDB |
MFC xx U.DLL |
MFC xx UD.LIB |
MFC xx UD.PDB |
MFC xx UD.DLL |
MFCSs xx U.LIB |
MFCSs xx U.PDB |
MFCSs xx UD.LIB |
MFCSs xx UD.PDB |
MFCM xx U.LIB |
MFCM xx U.PDB |
MFCM xx U.DLL |
MFCM xx UD.LIB |
MFCM xx UD.PDB |
MFCM xx UD.DLL |
(xx stellt die Versionsnummer der Datei dar; beispielsweise "80 " bedeutet Version 8.0.)
CString basiert auf dem TCHAR Datentyp.Wenn das Symbol _UNICODE für einen Build des Programms definiert ist, wird TCHAR als Typ wchar_t, ein 16-Bit-Zeichencodierungstyp definiert.Andernfalls wird TCHAR als char, die normale 8-Bit-Zeichencodierung definiert.Daher mit Unicode, wird CString von den 16-Bit-Zeichen zusammengesetzt.Ohne Unicode wird er von den Zeichen des Typs char zusammengesetzt.
So Unicode-Programmierung der Anwendung ausgeführt haben, müssen Sie auch:
Verwenden Sie das _T-Makro, um Zeichenfolgenliterale bedingt zu codieren, um zu Unicode übertragbar.
Wenn Sie Zeichenfolgen, Lohnaufmerksamkeit zu übergeben, ob Funktionsargumente eine Länge in Zeichen oder eine Länge in Bytes erfordern.Der Unterschied ist wichtig, wenn Sie Unicode-Zeichenfolgen verwenden.
Verwenden Sie portable Versionen der C-Laufzeit Funktionen zur Zeichenfolgenbehandlung.
Verwenden Sie die folgenden Datentypen für Zeichen und Zeichenzeiger:
TCHAR, wo Sie char verwenden würden.
LPTSTR, wo Sie char* verwenden würden.
LPCTSTR, wo Sie const char* verwenden würden.CString stellt den Operator LPCTSTR zum Konvertieren zwischen CString und LPCTSTR bereit.
CString stellt auch als Unicode-kompatible Konstruktoren, Zuweisungsoperatoren und Vergleichsoperatoren bereit.
Weitere Informationen über Unicode-Programmierung, finden Sie unter Unicode-Themen.der Laufzeitbibliotheksreferenz definiert portable Versionen aller seiner Funktionen zur Zeichenfolgenbehandlung.Siehe die Kategorie Internationalisierung.
MFC-Unterstützung für MBCS-Zeichenfolgen
Die Klassenbibliothek wird auch für Mehrbyte-Zeichensätze, jedoch nur für Doppelbyte-Zeichensätze (DBCS) aktiviert.
In einem Mehrbyte-Zeichensatz kann ein Zeichen oder zwei Bytes breit sein.Wenn zwei Bytes breit ist, ist die erste Byte ein spezielles "führendes Byte" das von einem bestimmten Bereich ausgewählt ist, je nach Codepage verwendet wird.Zusammen angewendet, geben die negativen und "die nachfolgenden Bytes" eine eindeutige Zeichencodierung an.
Wenn das Symbol _MBCS für einen Build des Programms, Typ TCHAR definiert wird, auf dem CString basiert, belegt char zu.Sie können dabei, zu bestimmen, welche Bytes in CString führende Bytes sind und welche nachfolgende Bytes sind.Die C-Laufzeitbibliotheks-Zubehörfunktionen, die Sie bei, dies zu bestimmen.
Die DBCS kann eine angegebene Zeichenfolge alle Einzelbyte- ANSI-Zeichen, alle Doppelbytezeichen oder einer Kombination der beiden enthalten.Diese Möglichkeiten erfordern besondere Sorgfalt in die Übertragung von Zeichenfolgen.Dies schließt CString-Objekte ein.
Hinweis |
---|
Unicode-Zeichenfolgen-Serialisierung in MFC kann Unicode und MBCS-Zeichenfolgen lesen, unabhängig von der Version der Anwendung, die Sie ausführen.die Datendateien sind zwischen Unicode und MBCS-Versionen des Programms portiert werden. |
spezielle Versionen "des generischen Text" der CString-Memberfunktionsverwendung der C-Laufzeitfunktionen, die sie aufrufen, oder sie verwenden als Unicode-kompatible Funktionen.Daher beispielsweise wenn eine CString-Funktion in der Regel strcmp aufrufen würde, ruft er die entsprechende Funktion _tcscmp des generischen Text stattdessen auf.Abhängig davon, wie die Symbole _MBCS und _UNICODE definiert werden, ordnet _tcscmp zu, wie folgt:
_MBCS definierte |
_mbscmp |
_UNICODE definierte |
wcscmp |
Außerdem nicht definierte Symbol |
strcmp |
Hinweis |
---|
Die Symbole _MBCS und _UNICODE schließen sich gegenseitig aus. |
Funktionszuordnungen für generischen Text für alle Ablauf-ZeichenfolgeBehandlung Routinen werden in C-Laufzeitbibliothek-Referenz erläutert.Insbesondere finden Sie unter Internationalisierung.
Ebenso werden CString-Methoden implementiert, indem "generische" Datentypzuordnungen verwendet.Um MBCS und Unicode zu aktivieren, verwendet MFC TCHAR für char, LPTSTR für char* und LPCTSTR für const char*.Diese stellen die richtigen Zuordnungen entweder für Unicode oder MBCS sicher.
Siehe auch
Referenz
Zeichenfolgenbearbeitung (CRT)