Partager via


Utilisation des mappages de texte générique

Section spécifique à Microsoft

Pour faciliter le développement logiciel pour de nombreux marchés internationaux, la bibliothèque Runtime Microsoft fournit des mappingsde textes génériques spécifiques à Microsoft pour de nombreux types de données, routines et autres objets. Ces mappings sont définis dans TCHAR.H. Vous pouvez utiliser ces mappings d'étiquette pour écrire du code générique qui peut être compilé pour chacun des trois types de jeux de caractères : ASCII (SBCS), MBCS, ou Unicode, en fonction d'une constante explicite que vous définissez à l'aide d'une instruction #define. Les mappings de texte générique sont des extensions Microsoft qui ne sont pas compatibles pour ANSI.

Directives du préprocesseur pour les mappages de texte générique

#define

Version compilée

Exemple

_UNICODE

Tout caractère large

_tcsrev correspond à _wcsrev

_MBCS

Caractère multioctets

_tcsrev correspond à _mbsrev

Aucun (la valeur par défaut n'est définie ni sur _UNICODE, ni sur _MBCS)

SBCS (ASCII)

<languageKeyword>1_tcsrev 2</languageKeyword>1 map avec <languageKeyword>3strrev4</languageKeyword>

Par exemple, la fonction de texte générique _tcsrev, qui est définie dans Tchar.h, correspond à mbsrev si vous avez défini MBCS dans votre programme, ou à _wcsrev si vous avez défini _UNICODE . Sinon, _tcsrev correspond à strrev.

Le type de données textuelles générique _TCHAR, également défini dans TCHAR.H, est mappé en type char si _MBCS est défini, en wchar_t si _UNICODE est défini, et en type char si aucune des constantes n'est définie. Pour des besoins de programmation, Tchar.h fournit d'autres mappages de type de données, mais _TCHAR est le type plus utile.

Mappages de types de données de texte générique

Mapping de types de données textuelles générique

SBCS (_UNICODE, _MBCS pas définit)

_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 ou la chaîne suivant(e) en son équivalent Unicode)

Pour obtenir la liste complète des mappings de textes génériques des routines, des variables, et d'autres objets, consultez Mappings de texte générique.

Les fragments de code suivants montrent comment utiliser _TCHAR et _tcsrev pour le mapping des MBCS, Unicode, et modèles SBCS.

_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);

Si MBCS a bien été défini, le préprocesseur mappe le fragment précédent au code suivant :

char *RetVal, *szString;
RetVal = _mbsrev(szString);

Si _UNICODE a bien été défini, le préprocesseur mappe le même fragment au code suivant :

wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);

Si ni _MBCS ni _UNICODE n'ont été définis, le préprocesseur mappe ce fragment en code ASCII sur un octet, comme suit :

char *RetVal, *szString;
RetVal = strrev(szString);

Vous pouvez donc écrire, maintenir et compiler un fichier de code source unique à exécuter avec des routines qui sont spécifiques à ces trois jeux de caractères.

FIN de la section spécifique à Microsoft

Voir aussi

Référence

Mappages de texte générique

Mappages de types de données

Mappage des constantes et des variables globales

Mappages de routine

Programme de texte générique, exemple