包含 Windows Media SDK 库时出现多个错误
Posted
技术标签:
【中文标题】包含 Windows Media SDK 库时出现多个错误【英文标题】:Multiple errors when including Windows Media SDK libs 【发布时间】:2015-12-16 16:58:57 【问题描述】:我正在尝试使用使用 Windows Media SDK 的 msvc2010 编译 Qt 项目
当我尝试包含 wmsbuffer.h
或 wmsdkidl.h
文件时,我收到如下错误:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\wmsbuffer.h(48) : error C2146: syntax error : missing ';' before identifier 'INSSBuffer'
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\wmsbuffer.h(48) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\wmsbuffer.h(48) : error C2146: syntax error : missing ';' before identifier 'INSSBuffer'
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\wmsbuffer.h(48) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\wmsbuffer.h(48) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\wmsbuffer.h(48) : error C2086: 'int INSSBuffer' : redefinition
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\wmsbuffer.h(48) : see declaration of 'INSSBuffer'
我认为问题在于我的 .pro 文件中没有正确的包含或库路径,但即使添加它也无济于事:
win32
INCLUDEPATH += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
DEPENDPATH += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include"
LIBS += -L"C:/Program Files/Microsoft SDKs/Windows/v7.1/lib" -lMscvrtd
LIBS += -L"C:/Program Files/Microsoft SDKs/Windows/v7.1/lib" -lWmvcore
这些错误看起来也像我在循环包含中遇到的问题,但我没有发现其他任何东西表明这可能是这里的问题。
我是否忘记了一些非常明显的事情?
【问题讨论】:
你看过this吗? 【参考方案1】:嗯,原来wmsdkidl.h
和wmsbuffer.h
中导致错误的行看起来都是这样的:
typedef interface IWMMediaProps IWMMediaProps;
但定义interface
(<objbase.h>
) 的标头似乎不包含在wmsbuffer.h
等中。
在我自己的标题中包含 objbase.h
并没有帮助,所以我用这个胶带解决方案解决了我的问题:
#define interface struct
#include <wmsdk.h>
这消除了错误,但由于重新定义了这个关键字而产生了很多警告......
我不完全确定发生了什么,或者为什么使用 interface
的库不包含它的定义,所以如果有人可以提供更好的解释和/或解决方案,请随意!
【讨论】:
您是否包含了以上是关于包含 Windows Media SDK 库时出现多个错误的主要内容,如果未能解决你的问题,请参考以下文章
VS2017新建或拷贝项目编译时出现:找不到 Windows SDK 版本8.1.请安装所需的版本的 Windows SDK
使用静态库(facebook-ios-sdk)中定义的协议时出现不完整的协议警告
当安装INSTALL_FAILED_NO_MATCHING_ABIS时出现Android AIR 33错误:无法提取本机库,res = -113
安装 microsoft platform SDK for Windows Server 2003 SP1 后在 VS 2005 中编译时出现问题
Android SDK 管理器在选择存储库时出现“无法获取 URL https://dl-ssl.google.com/android/repository/repository.xml”错误