Verwenden von Zuordnungen für generischen Text
Microsoft-spezifisch
Um verschiedene Codeentwicklung für internationale Märkte vereinfachen, stellt die Microsoft-Laufzeitbibliothek Zuordnungen des Microsoft-Besondere" generischen Text für viele Datentypen, Routinen und andere Objekte. Diese Zuordnungen sind in TCHAR.H. definiert. Sie können diese Namenszuordnungen bereit verwenden, können Sie generischen Code schreiben, der für die drei Arten der verbleibenden Zeichensätze kompiliert werden kann: ASCII (SBCS), MBCS- oder Unicode, abhängig von einer eindeutigen Konstante definieren Sie mithilfe einer #define-Anweisung. Zuordnungen für generischen Text sind Microsoft-Erweiterungen, die zu nicht konformem ANSI sind.
Präprozessordirektiven zum Zuordnen von generischem Text
#define |
Kompilierte Version |
Beispiel |
---|---|---|
_UNICODE |
Unicode (Breitzeichen) |
_tcsrev wird _wcsrev zugeordnet. |
_MBCS |
Mehrbytezeichen |
_tcsrev wird _mbsrev zugeordnet. |
Keine (Standard: weder _UNICODE noch _MBCS definiert) |
SBCS (ASCII) |
Zuordnungen zu strrev_tcsrev |
Beispielsweise die Funktion _tcsrev für generischen Text, definiert in TCHAR.H, in den Zuordnungen zu mbsrev, wenn MBCS in einem Programm definiert wurde oder _wcsrev , wenn _UNICODE definiert wurde. Andernfalls _tcsrev Zuordnungen zu strrev.
Der Datentyp _TCHAR des generischen Text, ebenfalls definiert in TCHAR.H, in den Zuordnungen, um char einzugeben, wenn _MBCS definiert ist, zu wchar_t, wenn _UNICODE definiert wird, und char einzugeben, wenn auch nicht Konstante definiert ist. Andere Datentypzuordnungen werden in TCHAR.H weitere Datentypzuordnungen zur Verfügung gestellt, aber _TCHAR ist der Typ, der sehr nützlich ist.
Generische Textzuordnungen von Datentypen
Datentypname für generischen Text |
(_UNICODE, SBCS _MBCS nicht definiert) |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_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 oder _TEXT |
Ohne Auswirkung (wird vom Präprozessor entfernt) |
Ohne Auswirkung (wird vom Präprozessor entfernt) |
L (konvertiert, die Zeichen oder Zeichenfolge in die Unicode-Entsprechung folgen) |
Eine vollständige Liste mit generischen Textzuordnungen von Routinen, Variablen und anderen Objekten finden, Zuordnungen für generischen Text.
Die folgenden Codefragmente veranschaulichen die Verwendung von _TCHAR und _tcsrev für die Zuordnung zu den MBCS-, zu Unicode und TO der SBCS-Modellen.
_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);
Wenn MBCS definiert wurde, ordnet der Präprozessor dem vorangehenden Fragment dem folgenden Code:
char *RetVal, *szString;
RetVal = _mbsrev(szString);
Wenn _UNICODE definiert wurde, ordnet der Präprozessor dem gleichen Fragment dem folgenden Code:
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
Wenn weder _MBCS noch _UNICODE definiert wurde, ordnet der Präprozessor dem Einzelbyte- ASCII-Code zu, wie folgt:
char *RetVal, *szString;
RetVal = strrev(szString);
So können Sie eine einzige Quellcodedatei so schreiben, verwalten und kompilieren, dass sie mit Routinen ausgeführt, die zu einer der drei Zeichensätze ausgerichtet sind.
END Microsoft-spezifisch
Siehe auch
Referenz
Zuordnungen für generischen Text