Partager via


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