Activation des applications C++ pour Unicode
Remonter à Unicode pour C++ - Index
Puisque la chaîne par défaut est Unicode, tout code C++ qui utilise les frameworks et bibliothèques RAD Studio doivent être orienté Unicode. Vous pouvez garantir que votre code gère correctement les chaînes étroites et les chaînes étendues en utilisant l'option Mappage TCHAR sur la boîte de dialogue Project > Options > C++ (options partagées).
wchar_t
et contiennent un point d'entrée _tmain(...)
, qui migre vers main
. Les applications C++ dont l'option mappage _TCHAR est définie utilisent automatiquement les fonctions flottantes correctes.Sommaire
Problèmes associés à Unicode pour C++
C++ comporte un ensemble unique de problèmes associés à Unicode que les utilisateurs de Delphi ne rencontrent pas. Ces problèmes sont dus au fait que la RTL C++ et l'API Windows sont restreints par défaut tandis que les frameworks et bibliothèques RAD Studio utilisent des chaînes Unicode. Certains de ces problèmes sont examinés ici.
Utilisation des frameworks et bibliothèques RAD Studio et de la RTL C++
Les frameworks et bibliothèques RAD Studio utilisent Unicode, tandis que la RTL C++ est restreinte par défaut mais contient des routines à la fois pour les chaînes étendues et les chaînes restreintes (voir Fonctions flottantes). Ainsi, vous devez utiliser les versions étendues des fonctions de la RTL C++ dans une application qui utilise les frameworks et bibliothèques RAD Studio. Pour utiliser la RTL C++ dans une application qui requiert des chaînes étendues), vous devez effectuer les actions suivantes :
- Définissez Mappage TCHAR sur
wchar_t
et utilisez _TCHAR dans votre code. - Utilisez la version "flottante" des membres de la RTL C++, tels que
_tcscpy
au lieu destrcpy
. Consultez la liste des Fonctions flottantes.
Utilisation de l'API Windows
L'API Windows utilise typiquement les chaînes étroites par défaut. L'option de mappage _TCHAR est d'une aide considérable ici, mais l'option est désactivée (définie sur char
) par défaut pour les applications qui n'utilisent pas les frameworks et bibliothèques RAD Studio.
Pour utiliser l'API Windows dans une application C++ qui n'utilise pas les frameworks et bibliothèques RAD Studio, vous devez définir explicitement l'option Mappage de _TCHAR en sur wchar_t
dans la boîte de dialogue Projet > Options > C++ (options partagées).
Passage des constantes chaînes
Les constantes chaînes, telles que "string constant", sont toujours étroites (char*
). Vous ne pouvez donc pas les passer aux fonctions des frameworks et bibliothèques RAD Studio qui prennent PChar comme vous le faisiez auparavant. Vous pouvez passer la constante aux fonctions des frameworks et bibliothèques RAD Studio avec un paramètre PChar si vous préfixez la constante avec L, comme dans
L"string constant"
Cette conversion est automatiquement effectuée quand vous définissez le mappage _TCHAR sur wchar_t
et utilisez les macros _TEXT et _T, comme décrit dans Mappage TCHAR.
Définition de la page de code
Vous pouvez définir la page de code pour les types AnsiString avec AnsiStringT<page de code>.
Les mêmes types prédéfinis sont fournis par Delphi :
- AnsiString est
AnsiStringT<0>
. - UTF8String est
AnsiStringT<65005>
, la page de code UTF8. - RawByteString est
AnsiStringT<0xFFFF>
.