如何关闭VC++项目中的Unicode?
我在Visual Studio 2008中如何关闭VC++项目中的Unicode?
它定义编译器命令行(/D "_UNICODE" /D "UNICODE"
)上统一的符号的VC++项目,即使我没有这个符号在该项目的预处理器部分开启。
alt text http://i26.tinypic.com/14nz693.jpg
结果,我对编译所有的Win32库函数的Unicode版本,而不是在ANSI的。例如在WinBase.h中,有:
#ifdef UNICODE
#define CreateFile CreateFileW
#else
#define CreateFile CreateFileA
#endif // !UNICODE
unicode在VC++项目中打开的位置,如何关闭它?
您是否尝试过:项目属性 - 常规 - 项目默认值 - 字符集?
见答案在这个问题上的“使用多字节字符集”之间的区别“未设置”选项:About the "Character set" option in visual studio 2010
非常感谢。这对我发现并且无法编译的项目帮助很大。 – LogoS 2015-12-30 15:53:30
工程爆破性质 - >配置电学性能的研究 - >通用 - >字节字符集
布尔戈斯有正确的答案。只是为了澄清,字符集应该改为“未设置”。
上述解决方案都不适用于我。 但
#include <Windows.h>
工作正常。
在主文件的顶部使用#undef UNICODE
。
没有*“主文件”*这样的东西。有编译单位。在源代码中明确定义预处理器符号将会错过通过'/ FI'编译器选项包含的那些文件。另外,如果不定义'_UNICODE',则定义'UNICODE'会在Windows API和CRT之间产生很好的不匹配。相当无用的答案,-1。 – IInspectable 2016-09-15 22:29:52
您可以转到项目属性 - >配置属性 - >常规 - >项目默认 ,并将“字符集”从“Unicode”更改为“未设置”。
任何原因,你停下来,复制一个6岁的答案,没有提供任何有价值的东西?当然,没有归因于信息的来源。 – IInspectable 2016-09-15 22:27:17
现在的实际问题是:为什么 - 看在上帝的份上 - 你会永远希望得到来自禁用UNICODE支持什么?这是我第一次见到有人要求进入故障模式的帮助。 – IInspectable 2014-10-20 13:40:48
如果您有遗留代码支持?例如,我们有一堆使用char/TCHAR的库,例如15年前。 – 2015-10-16 10:34:33
@IInspectable:Unicode支持与将'char'移动到'wchar_t'不同,这是Window做“Unicode”的蹩脚方式。通过一些拙劣的UTF-16实现,可以在任何一天给我使用UTF-8。 – 2016-09-15 20:55:02