Utilisation des mappages de texte générique
Section spécifique à Microsoft
Pour simplifier le développement de code pour les 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 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 n’importe lequel des trois types de jeux de caractères : ASCII (SBCS), MBCS ou Unicode, en fonction d’une constante manifeste que vous définissez à l’aide d’une instruction #define
. Les mappages de texte générique sont des extensions Microsoft qui ne sont pas compatibles ANSI.
Directives de préprocesseur pour les mappages de texte générique
#define |
Version compilée | Exemple |
---|---|---|
_UNICODE |
Unicode (caractères larges) | _tcsrev est mappé à _wcsrev |
_MBCS |
Caractères multioctets | _tcsrev est mappé à _mbsrev |
Aucun (valeur par défaut : à la fois _UNICODE et _MBCS non défini) |
SBCS (ASCII) | _tcsrev est mappé à strrev |
Par exemple, la fonction de texte générique _tcsrev
, définie dans TChar.h, est mappée à mbsrev
si MBCS
a été défini dans votre programme, ou à _wcsrev
si _UNICODE
a été défini. Sinon, _tcsrev
est mappée à strrev
.
Le type de données texte générique _TCHAR
, également défini dans TCHAR.H, correspond au type char
si _MBCS
est défini, au type wchar_t
si _UNICODE
est défini et au type char
si aucune constante n’est définie. Les autres mappages de type de données sont fournis dans TCHAR.H pour faciliter la programmation, mais _TCHAR
est le type le plus utile.
Mappages de types de données de texte générique
Nom de 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 le caractère suivant ou la chaîne suivante en son équivalent Unicode) |
Pour obtenir la liste complète des mappages de texte générique de routines, de variables et d’autres objets, consultez mappages de texte générique.
Les fragments de code suivants illustrent l’utilisation de _TCHAR
et _tcsrev
pour le mappage sur les modèles MBCS, Unicode et SBCS.
_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);
Si MBCS
a été défini, le préprocesseur mappe le fragment précédent sur le code suivant :
char *RetVal, *szString;
RetVal = _mbsrev(szString);
Si _UNICODE
a été défini, le préprocesseur mappe le même fragment sur le code suivant :
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
Si les deux _MBCS
et _UNICODE
n’ont pas été définis, le préprocesseur mappe le fragment au code ASCII à un octet, comme suit :
char *RetVal, *szString;
RetVal = strrev(szString);
Ces macros vous permettent d’écrire, de gérer et de compiler un fichier de code source unique à l’aide de routines spécifiques aux trois types de jeux de caractères.
FIN de la section spécifique à Microsoft
Voir aussi
Mappages de texte générique
Mappages de types de données
Mappages de variables constantes et globales
Mappages de routine
Exemple de programme de texte générique