Verwenden von Zuordnungen für generischen Text

Microsoft-spezifisch

Um Codeentwicklung für verschiedene internationale Märkte zu vereinfachen, stellt die Microsoft-Laufzeitbibliothek Microsoft-spezifische Zuordnungen „,“ generischen Text für viele Datentypen, Routinen und andere Objekte bereit.Diese Zuordnungen werden in TCHAR.H. definiert.Sie können diesen Namen verwenden, um den generischen Code zu schreiben, der für jede der drei Arten der Zeichensätze kompiliert werden kann: ASCII (SBCS), Unicode oder MBCS anhand einer Manifesten Konstanten definieren Sie mithilfe einer #define-Anweisung.Zuordnungen für generischen Text sind Microsoft-Erweiterungen, die nicht kompatibles ANSI sind.

Präprozessordirektiven zum Zuordnen von generischem Text

#define

Kompilierte Version

Beispiel

_UNICODE

Breitzeichen (Unicode)

_tcsrev wird _wcsrev zugeordnet.

_MBCS

Mehrbytezeichen

_tcsrev wird _mbsrev zugeordnet.

Keine (der Standard: weder definierten _UNICODE noch _MBCS )

SBCS (ASCII)

_tcsrevEntspricht strrev

Um beispielsweise die Funktion _tcsrevfür generischen Text, definiert in TCHAR.H, in den MBCS zugeordnet mbsrev , wenn im Programm definiert wurde oder _wcsrev, wenn _UNICODEdefiniert wurde.Andernfalls _tcsrevEntspricht strrev.

Der Datentyp _TCHARfür generischen Text, ebenfalls definiert in TCHAR.H, Karten, um char einzugeben, wenn _MBCS definiert ist, wchar_t einzugeben, wenn _UNICODE definiert ist, und char einzugeben, wenn keine Konstante definiert wird.Andere TCHAR.H werden in den Datentyp für Programmierkomfort bereitgestellt, aber _TCHAR ist der Typ, der sehr nützlich ist.

Generische Textzuordnungen von Datentypen

Datentypname für generischen Text

SBCS (_UNICODE, _MBCS nicht definiert)

_MBCS definieren

_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 (nach Zeichen oder Zeichenfolge in das Unicode-Äquivalent)

Eine vollständige Liste der Zuordnungen für generischen Text von Routinen finden Variablen und andere Objekte, Zuordnungen für generischen Text.

Die folgenden Codefragmente veranschaulichen die Verwendung von _TCHAR und _tcsrev für die Zuordnung für den MBCS-, um den TO Unicode- und SBCS-Modellen.

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

Wenn MBCS definiert wurde, ordnet der Präprozessor das vorherige Fragmente dem folgenden Code:

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

Wenn _UNICODE definiert wurde, ordnet der Präprozessor den gleichen Fragment dem folgenden Code:

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

Wenn weder _MBCS noch _UNICODE definiert wurde, ordnet der Präprozessor das Fragment zu Einzelbyte ASCII-Code wie folgt:

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

So können Sie eine einzige Quellcodedatei schreiben, verwalten und kompilieren, um mit Routinen ausgeführt werden soll, die in eine der drei Arten der Zeichensätze spezifisch sind.

Microsoft ENDES bestimmten

Siehe auch

Referenz

Zuordnungen für generischen Text

Datentyp-Zuordnungen

Konstante und globale Variablen-Zuordnungen

Routinezuordnungen

Ein Programm des Beispielgenerischen texts