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

Che*_*eso 60 unicode visual-studio visual-c++

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

它在编译器命令行(/D "_UNICODE" /D "UNICODE")上定义unicode的符号,即使我没有在项目的预处理器部分中打开此符号.

替代文字http://i26.tinypic.com/14nz693.jpg

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

#ifdef UNICODE
#define CreateFile  CreateFileW
#else
#define CreateFile  CreateFileA
#endif // !UNICODE
Run Code Online (Sandbox Code Playgroud)

在VC++项目中打开unicode的位置,我该如何将其关闭?

Nem*_*ric 100

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

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

  • 在 Visual Studio 2019 中:“项目属性 > 高级 > 字符集”设置为“未设置”或“使用多字节字符集”。 (6认同)
  • 再次感谢它保存了我的问题,但默认情况下 UNICODE 不是很好的举动。! (2认同)

小智 20

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


Ahm*_*aid 7

项目特性 - >配置特性 - >一般 - >特征集


J.M*_*SON 5

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

图片: 在IDE中设置配置

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

图片: 确认配置文件中的更改


Jua*_*jas 5

从VS2019项目属性-高级-高级属性-字符集 在此处输入图片说明

此外,如果有_UNICODE;UNICODE预处理器定义删除它们。项目属性-C/C++-预处理器-预处理器定义 在此处输入图片说明