Teilen über


Verwenden von Zuordnungen für generischen Text

Microsoft-spezifisch

Um die Codeentwicklung für internationale Märkte zu vereinfachen, stellt die Microsoft-Laufzeitbibliothek für viele Datentypen, Routinen und andere Objekte Microsoft-spezifische Zuordnungen für generischen Text zur Verfügung. Diese Zuordnungen werden in TCHAR.Hdefiniert. Sie können mithilfe dieser Namenszuordnungen generischen Code schreiben, der für die folgenden drei Arten von Zeichensätzen kompiliert werden kann: ASCII (SBCS), MBCS oder Unicode. Dies hängt von der Manifestkonstante ab, die Sie mit einer #define-Anweisung definieren. Generische Textzuordnungen sind Microsoft-Erweiterungen, die nicht ANSI-kompatibel sind.

Präprozessordirektiven für generische Textzuordnungen

#define Kompilierte Version Beispiel
_UNICODE Unicode (Breitzeichen) _tcsrev ist _wcsrev zugeordnet.
_MBCS Mehrbytezeichen _tcsrev ist _mbsrev zugeordnet.
Keine (Standard: beide _UNICODE und _MBCS nicht definiert) SBCS (ASCII) _tcsrev ist strrev zugeordnet.

Die generische Textfunktion _tcsrev, die in , definiert in TCHAR.H, ordnet z. B. zu _mbsrev , ob _MBCS in Ihrem Programm definiert wurde oder _wcsrev ob _UNICODE definiert wurde. Andernfalls wird _tcsrevstrrev zugeordnet.

Der generische Datentyp _TCHAR, auch definiert in TCHAR.H, ordnet den Typ zu, char wenn _MBCS definiert, dem Typ wchar_t , wenn _UNICODE definiert ist, und dem Typ char , wenn keine konstante definiert ist. Andere Datentypzuordnungen werden zur Benutzerfreundlichkeit der TCHAR.H Programmierung bereitgestellt, _TCHAR aber der Typ ist am nützlichsten.

Generische Textzuordnungen von Datentypen

Datentypname für generischen Text SBCS (_UNICODE_MBCSnicht 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 das nächste Zeichen oder die nächste Zeichenfolge in die Unicode-Entsprechung)

Eine vollständige Liste der generischen Textzuordnungen von Routinen, Variablen und anderen Objekten finden Sie unter Generic-Text-Zuordnungen.

Aus den folgenden Codefragmenten geht hervor, wie _TCHAR und _tcsrev für die Zuordnung zu den MBCS-, Unicode- und SBCS-Modellen verwendet werden.

_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);

Wenn _MBCS definiert wurde, ordnet der Präprozessor dem vorangehenden Fragment folgenden Code zu:

char *RetVal, *szString;
RetVal = _mbsrev(szString);

Wenn _UNICODE definiert wurde, ordnet der Präprozessor diesem Fragment folgenden Code zu:

wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);

Wenn beide _MBCS nicht definiert wurden _UNICODE , ordnet der Präprozessor das Fragment wie folgt einem ASCII-Code mit einem Byte zu:

char *RetVal, *szString;
RetVal = strrev(szString);

Mit diesen Makros können Sie eine einzelne Quellcodedatei mithilfe von Routinen schreiben, verwalten und kompilieren, die für alle drei Arten von Zeichensätzen spezifisch sind.

Ende Microsoft-spezifisch

Siehe auch

Generische Textzuordnungen
Datentypzuordnungen
Konstanten- und globalen Variablenzuordnungen
Routine-Zuordnungen
Beispiel für ein generisches Textprogramm