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

时间:2009-08-23 20:24:08

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

我在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的位置,如何将其关闭?

8 个答案:

答案 0 :(得分:97)

您是否尝试过:项目属性 - 常规 - 项目默认值 - 字符集?

有关“使用多​​字节字符集”和“未设置”选项之间的差异,请参阅此问题中的答案:About the "Character set" option in visual studio 2010

答案 1 :(得分:20)

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

答案 2 :(得分:7)

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

答案 3 :(得分:3)

从VS2019开始 项目属性-高级-高级属性-字符集 enter image description here

如果还有 _UNICODE; UNICODE ,则预处理程序定义会将其删除。 项目属性-C / C ++-预处理器-预处理器定义 enter image description here

答案 4 :(得分:2)

无论出于何种原因,我注意到设置为“所有配置”的unicode 实际上并没有适用于所有配置。

照片: Setting Configuragion In IDE

要确认这一点,我会打开.vcxproj并确认正确的令牌 在所有4个地点。在这张照片中,我使用的是unicode。所以字符串 我正在寻找的是“Unicode”。对你而言,你可能希望它说“MultiByte”。

照片: Confirming changes in configuration file

答案 5 :(得分:1)

在主文件的顶部使用#undef UNICODE

答案 6 :(得分:-3)

你可以去项目属性 - >配置属性 - >常规 - >项目默认 并改变了#34;字符集"来自" Unicode"到"未设置"。

答案 7 :(得分:-14)

以上解决方案均不适合我。 但是

#include <Windows.h>

工作正常。