如何将Visual Studio项目从使用宽字符串转换为普通字符串

时间:2009-04-07 20:23:36

标签: c++ c winapi visual-c++ unicode

当我创建我的visual studio项目时,它默认强制我使用宽字符串来处理所有带字符串的函数。例如,MessageBox()采用LPCWSTR而不是const char *。虽然我知道它对于多语言和便携式应用程序来说非常棒,但对于我简单的小应用程序来说,它是完全没必要的。坦率地说,在我的所有字符串周围不断输入TEXT()会更加痛苦。

是否有编译器选项,定义或项目设置,我可以更改以在我的Visual Studio项目中修复此问题?

2 个答案:

答案 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,也会产生宽字符串。