Partager via


Prise en charge MBCS dans Visual C++

Lors de l’exécution sur une version compatible MBCS de Windows, le système de développement Visual C++ (y compris l’éditeur de code source intégré, le débogueur et les outils en ligne de commande) est compatible MBCS, à l’exception de la fenêtre mémoire.

La fenêtre mémoire n’interprète pas les octets de données en tant que caractères MBCS, même s’il peut les interpréter en tant que caractères ANSI ou Unicode. Les caractères ANSI sont toujours de 1 octets et les caractères Unicode sont de 2 octets de taille. Avec MBCS, les caractères peuvent être de 1 ou 2 octets de taille et leur interprétation dépend de la page de codes utilisée. En raison de cela, il est difficile pour la fenêtre de mémoire d’afficher de manière fiable les caractères MBCS. La fenêtre mémoire ne peut pas savoir quel octet est le début d’un caractère. Le développeur peut afficher les valeurs d’octet dans la fenêtre mémoire et rechercher la valeur dans les tables pour déterminer la représentation de caractères. Cela est possible, car le développeur connaît l’adresse de départ d’une chaîne en fonction du code source.

Visual C++ accepte les caractères codés sur deux octets où qu’il soit approprié de le faire. Cela inclut les noms de chemins d’accès et les noms de fichiers dans les boîtes de dialogue et les entrées de texte dans l’éditeur de ressources Visual C++ (par exemple, le texte statique dans l’éditeur de dialogue et les entrées de texte statiques dans l’éditeur d’icônes). En outre, le préprocesseur reconnaît certaines directives de double octet ( par exemple, les noms de fichiers dans #include les instructions et les arguments aux code_seg pragmas).data_seg Dans l’éditeur de code source, les caractères codés sur deux octets dans les commentaires et les littéraux de chaîne sont acceptés, mais pas dans les éléments de langage C/C++ (tels que les noms de variables).

Prise en charge de l’éditeur de méthode d’entrée (IME)

Les applications écrites pour les marchés d’Asie de l’Est qui utilisent MBCS (par exemple, le Japon) prennent normalement en charge l’IME Windows pour entrer à la fois des caractères à octet unique et double octet. L’environnement de développement Visual C++ contient une prise en charge complète de l’IME.

Les claviers japonais ne prennent pas directement en charge les caractères Kanji. L’IME convertit une chaîne phonétique, entrée dans l’un des autres alphabets japonais (Romaji, Katakana ou Hiragana) en ses représentations kanji possibles. En cas d’ambiguïté, vous pouvez choisir parmi plusieurs alternatives. Lorsque vous avez sélectionné le caractère Kanji prévu, l’IME transmet deux WM_CHAR messages à l’application de contrôle.

L’IME, activé par la combinaison de touches ALT+, apparaît sous la forme d’un ensemble de boutons (un indicateur) et d’une fenêtre de conversion. L’application positionne la fenêtre au point d’insertion de texte. L’application doit gérer WM_MOVE et WM_SIZE messages en repositionnant la fenêtre de conversion pour qu’elle soit conforme au nouvel emplacement ou à la nouvelle taille de la fenêtre cible.

Si vous souhaitez que les utilisateurs de votre application aient la possibilité d’entrer des caractères Kanji, l’application doit gérer les messages Windows IME. Pour plus d’informations sur la programmation IME, consultez Input Method Manager.

Débogueur Visual C++

Le débogueur Visual C++ permet de définir des points d’arrêt sur les messages IME. En outre, la fenêtre Mémoire peut afficher des caractères codés sur deux octets.

Outils en ligne de commande

Les outils en ligne de commande Visual C++, notamment le compilateur, NMAKE et le compilateur de ressources (RC.EXE), sont compatibles MBCS. Vous pouvez utiliser l’option /c du compilateur de ressources pour modifier la page de codes par défaut lors de la compilation des ressources de votre application.

Pour modifier les paramètres régionaux par défaut au moment de la compilation du code source, utilisez #pragma setlocale.

Outils graphiques

Les outils Windows Visual C++, tels que Spy++ et les outils d’édition de ressources, prennent entièrement en charge les chaînes IME.

Voir aussi

Prise en charge des jeux de caractères multioctets (MBCS)
Conseils de programmation MBCS