在 VC + + 项目中如何关闭 Unicode?

我在 Visual Studio 2008中有一个 VC + + 的项目。

它在编译器命令行(/D "_UNICODE" /D "UNICODE")中定义 Unicode 的符号,尽管我没有在项目的预处理器部分中打开这个符号。

alt text

因此,我正在根据所有 Win32库函数的 Unicode 版本进行编译,而不是 ANSI 版本。例如,在 WinBase.h 中,有:

#ifdef UNICODE
#define CreateFile  CreateFileW
#else
#define CreateFile  CreateFileA
#endif // !UNICODE

在 VC + + 项目中,Unicode 在哪里被打开,我怎样才能关闭它?

120917 次浏览

项目属性-> 配置属性-> 一般-> 字符集

您试过: 项目属性-一般-项目默认-字符集?

有关“使用多字节字符集”和“未设置”选项之间的区别,请参见此问题的答案: 关于“字符集”选项在视觉工作室2010年

布尔戈斯有正确的答案。只是为了澄清,字符集应该改为“不设置”。

可以转到 Project properties —— > configuration properties —— > General —— > Project default 然后将“字符集”从“ Unicode”更改为“ Not set”。

不知道为什么,我注意到“ All Configuration”的 unicode 设置 实际上并不适用于所有配置。

图片来源: Setting Configuragion In IDE

为了确认这一点,我将打开. vcxproj 并确认正确的令牌 是在所有4个位置。在这张照片中,我使用 Unicode。所以字符串 我要找的是“ Unicode”。对你来说,你可能希望它说“多字节”。

图片来源: Confirming changes in configuration file

来自 VS2019 项目属性-高级-高级属性-字符集 enter image description here

另外,如果有 _ UNICODE;预处理器定义删除他们。 项目属性-C/C + +-预处理器-预处理器定义 enter image description here