Comment voulez-vous convertir un projet Visual Studio à partir de l'aide de l'échelle de chaînes de chaînes ordinaires
Lorsque j'ai créé mon projet visual studio il manqué de me forcer à utiliser l'échelle de cordes, pour toutes les fonctions qui prennent des chaînes de caractères. MessageBox (), par exemple, prend une LPCWSTR plutôt qu'un const char*. Bien que je comprenne que c'est super pour le multilingue et des applications portables, il est complètement inutile pour mon simple petit app. Franchement, c'est plus d'une douleur à la permanence de type TEXTE (ne) autour de tous mes cordes.
Est-il une option de compilation, de définir ou de réglage de projet qui je peux modifier pour résoudre ce problème dans mon projet de Visual Studio?
Vous devez vous connecter pour publier un commentaire.
Clic droit sur votre projet -> Propriétés, puis accédez à l'élément de l'arbre:
Pour Unicode sélectionnez:
L'Utilisation Des Chaînes De Caractères Unicode
Pour le mode multi-octets sélectionnez:
Utilisation Multi-Byte Character Set
Quand vous mettez
TEXT()
ou_T()
autour de vos chaînes, vous êtes le rendant compatible avec à la fois de la chaîne de caractères options. Si vous sélectionnezUse multi-byte character set
alors vous n'avez pas besoin de quelque chose autour de vos chaînes. Si vous sélectionnezUse unicode character set
, vous devez au moins L en face de vos chaînes.En sélectionnant
Use Unicode Character Strings
vous êtes également par défaut à l'aide de l'ensemble de l'API Win32 qui fin dans W. Exemple:MessageBox
cartes àMessageBoxW
.Lorsque vous sélectionnez
Use multi-byte character set
vous êtes également par défaut à l'aide de l'ensemble de l'API Win32 qui fin en A. Exemple:MessageBox
cartes àMessageBoxA
.L
si il est venu sous la forme d'un argument de ligne de commande? Ou voulez-vous seulement utiliserL
devant les chaînes codées en dur?Il est intéressant de noter que vous pouvez déclarer explicitement large chaîne de caractères littéraux de la forme:
qui nécessite moins de touches que les macros de TEXTE() ou _T(), mais ce qui va faire une chaîne de caractères larges, même si l'UNICODE n'est pas défini.