Sjb*_*ack 1 c++ mfc midl vcproj visual-studio-2013
我最近搬到了visual studio 2013并升级了所有的c ++项目,使用了8.1的windows SDK和v120_xp工具集.绝大多数项目都在编译和工作正常但我有两个项目拒绝构建,有几个类似于以下错误的错误:
error MIDL2072: inapplicable attribute : [annotation] [ Field 'pDescription' of Struct 'D3D10_MESSAGE' ( Type 'D3D10_MESSAGE' ) ]
Run Code Online (Sandbox Code Playgroud)
所有错误都是指d3d10sdklayers.idl文件.当项目idl文件作为项目的一部分编译时,如果我单独编译文件就会发生这种情况.
任何帮助或建议表示赞赏,谢谢.
并升级我的所有c ++项目以使用Windows SDK的8.1
这就是出错的地方.当您使用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,时机已到.
| 归档时间: |
|
| 查看次数: |
818 次 |
| 最近记录: |