Utilisation des mappages de Texte générique
Spécifique à Microsoft
Pour simplifier le développement du code pour des marchés internationaux, la bibliothèque Runtime Microsoft fournit des mappages de texte générique « » spécifiques à microsoft pour de nombreux types de données, routines, et d'autres objets.ces mappages sont définis dans TCHAR.H.Vous pouvez utiliser ces mappages de nom pour écrire du code générique qui peut être compilé pour les trois genres de jeux de caractères : ASCII (SBCS), MBCS, ou Unicode, selon une constante de manifeste vous définissez à l'aide d'une instruction d' #define .les mappages de texte générique sont des extensions Microsoft qui ne sont pas ANSI compatible.
Directives du préprocesseur pour les mappages de texte générique
# define |
Version compilée |
Exemple |
---|---|---|
_UNICODE |
Unicode (caractère élargi) |
_tcsrev correspond à _wcsrev |
_MBCS |
Caractère multioctets |
_tcsrev correspond à _mbsrev |
aucun (la valeur par défaut : ni _UNICODE ni _MBCS n'a défini) |
SBCS (ASCII) |
cartes d'_tcsrevà strrev |
Par exemple, la fonction _tcsrevde texte générique, défini dans TCHAR.H, correspond à mbsrev si MBCS a été défini dans votre programme, ou à _wcsrevsi _UNICODEa été défini.Sinon cartes d' _tcsrevà strrev.
Le type de données _TCHARde texte générique, aussi défini dans TCHAR.H, correspond au char si _MBCS est défini, en type wchar_t si _UNICODE est défini, et pour taper char si aucune de ces constante n'est définie.D'autres mappages de types de données sont fournis dans TCHAR.H pour des raisons pratiques de programmation, mais _TCHAR est celui qui est très utile.
Mappages de types de données de texte générique
nom du type de données de texte générique |
SBCS (_UNICODE, _MBCS non définis) |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_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 ou _TEXT |
Aucun effet (supprimé par le préprocesseur) |
Aucun effet (supprimé par le préprocesseur) |
L (convertit après caractère ou chaîne en son équivalent Unicode) |
Pour une liste complète des mappages de texte générique des routines, les variables, et autres objets, consultez Mappages de texte générique.
Les fragments de code suivants illustrent l'utilisation d' _TCHAR et d' _tcsrev pour mapper au MBCS, au format Unicode, et aux modèles SBCS.
_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);
Si MBCS a été défini, le préprocesseur mappe ce fragment précédent au code suivant :
char *RetVal, *szString;
RetVal = _mbsrev(szString);
Si _UNICODE a été défini, le préprocesseur mappe ce même fragment au code suivant :
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
Si ni _MBCS ni _UNICODE n'a été défini, le préprocesseur mappe ce fragment à le code ASCII codé sur un octet, comme suit :
char *RetVal, *szString;
RetVal = strrev(szString);
Vous pouvez donc écrire, la conservation, et compiler un fichier de code source unique pour exécuter avec des routines qui sont spécifiques aux trois genres de jeux de caractères.
détail de FIN Microsoft