我正在使用 Visual Studio 2010 SP1。我注意到我可以将属性表添加到项目中,但我无法更改这些属性表中的字符集。我创建的任何属性表都缺少“字符集”选项。
谁能解释为什么我不能使用属性表设置字符集?是否有一些不能使用属性表设置的禁止属性列表?
谢谢
我正在使用 Visual Studio 2010 SP1。我注意到我可以将属性表添加到项目中,但我无法更改这些属性表中的字符集。我创建的任何属性表都缺少“字符集”选项。
谁能解释为什么我不能使用属性表设置字符集?是否有一些不能使用属性表设置的禁止属性列表?
谢谢
好的,我在硬盘上进行了一些搜索并找到了答案。
项目默认值(字符集所属的一部分)定义要继承的默认 MSBuild 属性表。因此,当您在项目中选择字符集时,您不会更改项目文件中的预处理器定义,而是您的项目文件将继承更改这些定义的字符集属性表。如果您不选择字符集,则不会继承任何属性表。
Unicode 和 MBCS 属性表位于此处:
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.MultiByteCharSupport.props
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.unicodesupport.props
MBCS 属性表仅将 _MBCS 添加到编译器的预处理器定义(C/C++ 预处理器定义)。Unicode 属性表仅将 UNICODE 和 _UNICODE 添加到编译器的预处理器定义(C/C++ 预处理器定义)和资源编译器的定义(资源预处理器定义)。就是这样。