我在Visual Studio 2008中有一个VC ++项目。
它在编译器命令行(/D "_UNICODE" /D "UNICODE"
)上定义unicode的符号,即使我没有在项目的预处理器部分打开此符号。
因此,我正在编译所有Win32库函数的Unicode版本,而不是ANSI版本。例如,在WinBase.h中,有:
#ifdef UNICODE
#define CreateFile CreateFileW
#else
#define CreateFile CreateFileA
#endif // !UNICODE
在VC ++项目中打开unicode的位置,如何将其关闭?
答案 0 :(得分:97)
您是否尝试过:项目属性 - 常规 - 项目默认值 - 字符集?
有关“使用多字节字符集”和“未设置”选项之间的差异,请参阅此问题中的答案:About the "Character set" option in visual studio 2010
答案 1 :(得分:20)
布尔戈斯有正确的答案。为了澄清,字符集应该更改为“未设置”。
答案 2 :(得分:7)
项目属性 - >配置属性 - >一般 - >字符集
答案 3 :(得分:3)
答案 4 :(得分:2)
无论出于何种原因,我注意到设置为“所有配置”的unicode 实际上并没有适用于所有配置。
要确认这一点,我会打开.vcxproj并确认正确的令牌 在所有4个地点。在这张照片中,我使用的是unicode。所以字符串 我正在寻找的是“Unicode”。对你而言,你可能希望它说“MultiByte”。
答案 5 :(得分:1)
在主文件的顶部使用#undef UNICODE
。
答案 6 :(得分:-3)
你可以去项目属性 - >配置属性 - >常规 - >项目默认 并改变了#34;字符集"来自" Unicode"到"未设置"。
答案 7 :(得分:-14)
以上解决方案均不适合我。 但是
#include <Windows.h>
工作正常。