如何closuresVC ++项目中的Unicode?

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

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

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

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

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

在VC ++项目中打开的unicode在哪里,我怎么把它关掉?

你有没有尝试过:项目属性 – 一般 – 项目默认值 – 字符集?

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

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

项目性质 – >configuration性 – >一般 – >特性集

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

不pipe出于什么原因,我注意到设置为“所有configuration”的unicode实际上并不适用于所有configuration。

图片: 在IDE中设置配置

要确认这一点,我会打开.vcxproj并确认正确的令牌是在所有4个位置。 在这张照片中,我正在使用unicode。 所以我正在寻找的string是“Unicode”。 对于你,你可能想要说“MultiByte”。

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

你可以去项目属性 – >configuration属性 – >常规 – >项目默认,那里“字符集”从“Unicode”更改为“未设置”。

上述解决scheme都不适合我。 但

 #include <Windows.h> 

工作得很好。