当我创建我的visual studio项目时,它默认强制我使用宽字符串来处理所有带字符串的函数。例如,MessageBox()采用LPCWSTR而不是const char *。虽然我知道它对于多语言和便携式应用程序来说非常棒,但对于我简单的小应用程序来说,它是完全没必要的。坦率地说,在我的所有字符串周围不断输入TEXT()会更加痛苦。
是否有编译器选项,定义或项目设置,我可以更改以在我的Visual Studio项目中修复此问题?
答案 0 :(得分:16)
右键点击您的项目 - >然后,属性转到以下树项:
配置属性 - >一般
对于Unicode选择:
使用Unicode字符串
对于普通的多字节选择:
使用多字节字符集
当您在字符串周围添加TEXT()
或_T()
时,您将使其与两个字符串选项兼容。如果您选择Use multi-byte character set
,那么您的字符串周围不需要任何内容。如果选择Use unicode character set
,则字符串前面至少需要L.
选择Use Unicode Character Strings
默认情况下,您也使用以W结尾的所有Win32 API。示例:MessageBox
映射到MessageBoxW
。
当您选择Use multi-byte character set
时,您也默认使用以A结尾的所有Win32 API。示例:MessageBox
映射到MessageBoxA
。
答案 1 :(得分:1)
值得注意的是,您可以显式声明格式的宽字符串文字:
WCHAR *s = L"Hello Wide World.";
它需要的键击次数少于宏TEXT()或_T(),但即使未定义UNICODE,也会产生宽字符串。