Visual studio 2013项目与v120_xp工具集有MIDL 2072错误

Visual studio 2013 project with v120_xp toolset has MIDL 2072 error

本文关键字:工具集 MIDL 2072 错误 xp 2013 studio 项目 v120 Visual      更新时间:2023-10-16

我最近搬到了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,时机已到。