Question

Je suis en train de construire une application MFC C ++ avec "Utiliser le jeu de caractères Unicode". sélectionné dans Visual Studio. UNICODE est défini, mes CStrings sont en 16 bits, je gère les noms de fichiers contenant des caractères japonais, etc. Mais, lorsque je mets des chaînes Unicode contenant des caractères japonais dans une CComboBox (avec AddString), elles apparaissent sous la forme ????? .

J'utilise Windows XP Professionnel x64 (en anglais). Si j'utilise les Options régionales et linguistiques du Panneau de configuration de Windows, l'onglet Avancé et que je définis la langue en japonais pour les programmes non-Unicode, ma liste déroulante s'affiche correctement.

Je souhaite donc que ma zone de liste déroulante soit correcte et je veux comprendre pourquoi le "Langage pour les programmes non Unicode". Ce paramètre modifie le comportement de mon programme Unicode. Y a-t-il autre chose que je devrais faire pour dire à Windows que mon application est une application Unicode?

Merci pour toute aide!

Était-ce utile?

La solution

Windows connaît la différence entre les programmes Unicode et non Unicode par les fonctions qu’ils appellent. La plupart des fonctions de l'API Windows auront deux variantes, l'une se terminant par A pour les caractères non-Unicode et l'autre par W pour Unicode. Les fichiers d'inclusion qui définissent ces fonctions utiliseront les paramètres du compilateur pour choisir automatiquement l'un ou l'autre.

Il est possible que les caractères ne sortent pas correctement car vous avez sélectionné une police qui ne les inclut pas comme police par défaut de votre interface utilisateur.

Autres conseils

D'où tirez-vous les ficelles? S'ils sont codés en dur dans vos sources C, au moment où vous appelez AddString, ils sont (probablement) déjà endommagés.

Rien n'empêche de prendre une chaîne Unicode, "squeeze". dans std :: string, par exemple, et endommagez-le. Même si les applications sont compilées au format Unicode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top