Korzystanie z mapowań tekst rodzajowy
Programu Microsoft
Uproszczenie programowania kodu na różnych rynkach międzynarodowych, run-time library firmy Microsoft zawiera mapowania "generic tekst" specyficzne dla firmy Microsoft dla wielu typów danych, procedur i innych obiektów.Mapowania te są zdefiniowane w TCHAR.H.Można użyć tych mapowań nazw pisać kod rodzajowy, który mógł być kompilowany dla każdego z trzech typów zestawów znaków: ASCII (SBCS), MBCS lub Unicode, w zależności od tego, można zdefiniować przy użyciu stałej manifestu #define instrukcji.Tekst rodzajowy mapowania są rozszerzenia Microsoft, które nie są zgodne ANSI.
Dyrektywy preprocesora dla mapowań tekst rodzajowy
# define |
Skompilowanej wersji |
Przykład |
---|---|---|
_UNICODE |
Unicode (szerokich znaków) |
_tcsrevmapy do_wcsrev |
_MBCS |
Znaków wielobajtowych |
_tcsrevmapy do_mbsrev |
Brak (domyślnie: ani _UNICODE ani _MBCS zdefiniowane) |
SBCS (ASCII) |
_tcsrev mapy dostrrev |
Na przykład, funkcja tekst rodzajowy _tcsrev, określonych w TCHAR.H, mapuje do mbsrev Jeśli MBCS zostały zdefiniowane w programie lub do _wcsrev Jeśli _UNICODE została zdefiniowana.W przeciwnym razie _tcsrev mapy do strrev.
Typ danych tekst rodzajowy _TCHAR, także zdefiniowane w TCHAR.Mapuje H, wpisz char Jeśli _MBCS jest zdefiniowany, aby wpisać wchar_t Jeśli _UNICODE jest zdefiniowana i wpisz char Jeśli ani stała jest zdefiniowana.Inne mapowania typu dane są dostarczane w TCHAR.H w celu ułatwienia programowania, ale _TCHAR jest typem, która jest najbardziej przydatna.
Mapowania typu danych tekst rodzajowy
Nazwa typu danych tekst rodzajowy |
SBCS (_UNICODE, _MBCS, nie zdefiniowane) |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_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 |
_Tlub_TEXT |
Brak efektu (usunięta przez preprocessor) |
Brak efektu (usunięta przez preprocessor) |
L(konwertuje po jego odpowiednik Unicode znaku lub ciągu) |
Aby uzyskać pełną listę mapowań tekst rodzajowy procedur, zmiennych i innych obiektów, zobacz Tekst rodzajowy mapowania.
Następujące fragmenty kodu ilustrują użycie _TCHAR i _tcsrev dla mapowania do MBCS, Unicode i SBCS modeli.
_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);
Jeśli MBCS została zdefiniowana, preprocesora mapuje poprzedniego fragmentu następujący kod:
char *RetVal, *szString;
RetVal = _mbsrev(szString);
Jeśli _UNICODE została zdefiniowana, preprocesora mapuje ten sam fragment następujący kod:
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
Jeśli ani _MBCS ani _UNICODE została zdefiniowana, preprocesora mapuje fragmentu na jednobajtowe kodu ASCII, w następujący sposób:
char *RetVal, *szString;
RetVal = strrev(szString);
Można zatem pisać, utrzymania i skompiluj plik kodu pojedyncze źródło do uruchomienia z procedur, które są specyficzne dla żadnego z trzech rodzajów zestawów znaków.
KONIEC Microsoft szczególne