Visual studio 2013项目与v120_xp工具集有MIDL 2072错误
Visual studio 2013 project with v120_xp toolset has MIDL 2072 error
我最近搬到了visual studio 2013,并升级了我所有的c++项目,以使用8.1的windows SDK和v120_xp工具集。绝大多数项目正在编译和工作良好,但我确实有两个项目拒绝构建几个类似于以下错误的错误:
error MIDL2072: inapplicable attribute : [annotation] [ Field 'pDescription' of Struct 'D3D10_MESSAGE' ( Type 'D3D10_MESSAGE' ) ]
所有错误都是指d3d10sdklayers。idl文件。当项目的idl文件作为项目的一部分编译时,会发生这种情况,如果我单独编译该文件,则可以。
任何帮助或建议都很感激,谢谢。
和升级我所有的c++项目使用8.1的windows SDK
这就是问题所在。当您使用v120_xp工具集时,您将使用旧的版本的Windows SDK。7.1版本,最后一个仍然与XP兼容的版本。使用#include不同的文件,并构建旧的工具,如midl.exe。
你不能在d3d10sdklayers.idl的8.1版本上使用这个旧版本的midl.exe。它包含不知道如何处理的属性。它被文件中存在的_Field_size_(DescriptionByteLength)
卡住了。只有8。X版本的midl.exe可以处理。
你遇到这个问题有点幸运,8.1 SDK头中有很多隐藏的陷阱,会使你的程序无法在XP上正常工作。也很难诊断。如果您需要XP兼容性,那么必须使用7.1头文件。你必须修复你对项目造成的损害,大概是vc++目录设置。或者放弃支持XP,时机已到。
相关文章:
- NPM 安装:找不到平台工具集 = v141
- 构建在VS 2013中找不到平台工具集= 'v141'
- C++ VS 工具集 141 - 142 铸造的差异
- 如果使用平台工具集构建应用,则 CCheckListBox 项在选择时会重叠'Visual Studio 2017 (v141)'
- Visual Studio Platform 工具集和运行时库
- 使用自定义工具集获取动态退出析构函数链接错误 - eh 矢量析构函数
- 在一个VS项目中使用多个工具集 - 是否存在风险
- 为什么在链接时搜索使用错误工具集的提升库?
- C2064 从 MSVC v100 更新到 v140 平台工具集时出现编译错误
- 使用类型参数专用化部分模板参数(VC++ v140 工具集)
- C V100平台工具集
- 提升链接器错误工具集
- 如何获取Visual Studio C++工具集标记
- 我已安装的GCC版本是我已安装的RedHat开发人员工具集的背后
- 找不到 Visual Studio 2008 的生成工具(平台工具集 = 'v90')
- 如何使用 CMake 设置 VS 平台工具集属性
- 始终使用 Visual Studio 中提供的最新工具集
- 使用不同工具集使用Cl.EXE编译
- 我可以将使用v120_xp工具集构建的静态库链接到使用VS2013中的v120工具集创建的EXE/DLL中吗
- Visual studio 2013项目与v120_xp工具集有MIDL 2072错误