2009-04-07 8 views
6

Lorsque j'ai créé mon projet de studio visuel, il a forcé par défaut à utiliser des chaînes étendues pour toutes les fonctions qui prennent des chaînes de caractères. MessageBox() par exemple, prend un LPCWSTR plutôt qu'un const char *. Bien que je comprenne que c'est génial pour les applications multilingues et portables, il est complètement inutile pour ma petite application simple. Franchement, il est plus difficile de taper constamment TEXT() autour de toutes mes chaînes.Comment convertir un projet Visual Studio pour l'utilisation de chaînes étendues en chaînes ordinaires

Existe-t-il une option de compilateur, un paramètre de définition ou de projet que je peux modifier pour résoudre ce problème dans mon projet Visual Studio?

Répondre

14

Faites un clic droit sur votre projet -> Propriétés puis passez à l'élément de l'arborescence suivante:

Propriétés de configuration -> Général

Pour Unicode sélectionnez:
Utilisez des chaînes de caractères Unicode

Pour les multi-octets normaux, sélectionnez:
Utilisez caractères multi-octets

Lorsque vous mettez TEXT() ou _T() autour de vos cordes, vous faites compatible avec les deux options de chaîne de caractères. Si vous sélectionnez Use multi-byte character set alors vous n'avez besoin de rien autour de vos chaînes. Si vous sélectionnez Use unicode character set, vous avez besoin d'au moins L devant vos chaînes.

En sélectionnant Use Unicode Character Strings vous êtes également par défaut en utilisant toutes les API Win32 qui se terminent par W. Exemple: MessageBox cartes à MessageBoxW.

Lorsque vous sélectionnez Use multi-byte character set vous êtes également par défaut en utilisant toutes les API Win32 qui se terminent par A. Exemple: MessageBox cartes à MessageBoxA.

1

Il convient de noter que vous pouvez déclarer explicitement littéraux large chaîne de caractères de la forme:

WCHAR *s = L"Hello Wide World."; 

qui nécessite moins de frappes que les macros TEXT() ou _T(), mais qui fera un caractère large chaîne même si UNICODE n'est pas défini.

Questions connexes