Použití mapování Generic Text
Konkrétní společnosti Microsoft
Zjednodušit vývoj kódu pro různé mezinárodní trhy spuštění knihovny Microsoft poskytuje mapování "obecný text" Microsoft specifické pro mnoho typů dat, rutin a jiných objektů.Tato mapování jsou definovány v TCHAR.H.Mapování těchto názvů můžete napsat obecný kód, který lze sestavit pro všechny tři druhy znakové sady: (SBCS), MBCS nebo Unicode, v závislosti na manifestu definovat pomocí konstanty #define prohlášení.Obecný text mapování jsou rozšíření Microsoft, které nejsou kompatibilní ANSI.
Směrnice preprocesor pro mapování obecných textů
# define |
Kompilovaná verze |
Příklad |
---|---|---|
_UNICODE |
Unicode (wide znak) |
_tcsrevmapuje_wcsrev |
_MBCS |
Více-bajtové znaky |
_tcsrevmapuje_mbsrev |
NONE (výchozí: ani _UNICODE ani _MBCS definice) |
SBCS (ASCII) |
_tcsrev mapujestrrev |
Například funkce obecný text _tcsrev, definované v TCHAR.H, mapuje na mbsrev Pokud MBCS byla definována v aplikaci nebo na _wcsrev -li _UNICODE byla definována.Jinak _tcsrev mapuje na strrev.
Typ dat text obecný _TCHAR, také definice ve TCHAR.Mapuje H, zadejte char -li _MBCS je definován zadejte wchar_t Pokud _UNICODE je definován a zadejte char -li definována žádná konstanta.Další typ mapování dat jsou k dispozici v TCHAR.H pro programování pohodlí, ale _TCHAR je typ, který je nejužitečnější.
Mapování obecných textových databázový typů
Název typu dat obecný text |
SBCS (_UNICODE, _MBCS není definováno) |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_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 |
_Tnebo_TEXT |
Žádný účinek (odstraněno preprocesorem) |
Žádný účinek (odstraněno preprocesorem) |
L(převede po jeho protějšku Unicode znak nebo řetězec) |
Úplný seznam mapování obecný text rutiny, proměnné a další objekty, viz Generic Text mapování.
Následující kód fragmenty ilustrují použití _TCHAR a _tcsrev pro mapování modelů MBCS Unicode a SBCS.
_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);
Pokud MBCS byla definována, preprocesoru mapuje předchozí fragmentu následující kód:
char *RetVal, *szString;
RetVal = _mbsrev(szString);
Pokud _UNICODE byla definována, preprocesoru mapuje stejný fragment následující kód:
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
Pokud ani _MBCS ani _UNICODE byla definována, preprocesoru mapuje fragment kódu ASCII jednoho bajtu, takto:
char *RetVal, *szString;
RetVal = strrev(szString);
Lze tedy zapsat, udržovat a kompilovat kód jeden zdrojový soubor spustit s rutiny, které jsou specifické pro všechny tři druhy znakové sady.
Konec konkrétní společnosti Microsoft