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 _tcsrevde texte générique, définie dans TCHAR.H, est mappée si _mbsrev_MBCS elle a été définie dans votre programme ou si _wcsrev_UNICODE elle a été définie. Sinon, _tcsrev est mappée à strrev.

Le type _TCHARde données de texte générique, également défini dans TCHAR.H, est mappé au type char s’il _MBCS est défini, au type wchar_t s’il _UNICODE est défini et au type char si aucune constante n’est définie. D’autres mappages de types de données sont fournis pour TCHAR.H faciliter la programmation, mais _TCHAR il s’agit du 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 (_UNICODEnon _MBCS défini) _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