包含Windows Media SDK库时出现多个错误
Multiple errors when including Windows Media SDK libs
我正试图用msvc2010编译一个使用Windows Media SDK的Qt项目当我尝试包含wmsbuffer.h
或wmsdkidl.h
文件时,我会遇到以下错误:
C:Program FilesMicrosoft SDKsWindowsv7.1Includewmsbuffer.h(48) : error C2146: syntax error : missing ';' before identifier 'INSSBuffer'
C:Program FilesMicrosoft SDKsWindowsv7.1Includewmsbuffer.h(48) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:Program FilesMicrosoft SDKsWindowsv7.1Includewmsbuffer.h(48) : error C2146: syntax error : missing ';' before identifier 'INSSBuffer'
C:Program FilesMicrosoft SDKsWindowsv7.1Includewmsbuffer.h(48) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:Program FilesMicrosoft SDKsWindowsv7.1Includewmsbuffer.h(48) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:Program FilesMicrosoft SDKsWindowsv7.1Includewmsbuffer.h(48) : error C2086: 'int INSSBuffer' : redefinition
C:Program FilesMicrosoft SDKsWindowsv7.1Includewmsbuffer.h(48) : see declaration of 'INSSBuffer'
我认为问题是我在.pro文件中没有正确的include或库路径,但即使添加它也无济于事:
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
}
这些错误看起来也像是我在循环包含中遇到的问题,但我没有发现其他任何东西表明这可能是这里的问题。
我忘了什么很明显的事了吗?
事实证明,在wmsdkidl.h
和wmsbuffer.h
中导致错误的行看起来都是这样的:
typedef interface IWMMediaProps IWMMediaProps;
但是定义interface
(<objbase.h>
)的报头似乎不包括在wmsbuffer.h
等中
在我自己的标题中包含objbase.h
并没有帮助,所以我用这个胶带解决方案解决了我的问题:
#define interface struct
#include <wmsdk.h>
它消除了错误,但由于重新定义了这个关键字而产生了很多警告。。。
不过,我不完全确定发生了什么,也不完全确定为什么使用interface
的库不包括它的定义,所以如果有人能提供更好的解释和/或解决方案,请随时提供!
相关文章:
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- 分段 Linux Ubuntu 中的 g++ 错误,但在 Windows 中的 g++/MingW 中,在 C++ 中打
- Windows C++:文件夹移动访问被拒绝错误
- C++20 个模块在 clang (Windows):在最简单的示例中键入信息错误
- g++ 9.2.1 (Linux) 会导致 seg 错误,但 Windows 上的代码块不会
- 0xc000007b Windows 上的 OpenCL 库的加载时间错误
- Windows SAPI 错误:"GetVersionExA":已声明已弃用
- 在 Windows 10 下使用 GTest 的 CMake - 致命错误 LNK1104:无法打开文件"gtest.lib",但存在调试"gtestd.lib"
- 在 Windows 10 下为 VTK 生成 Makefile 时,Qt mkspecs 的路径错误
- C++ - 程序接收信号SIGSEGV,分段错误.In msvcrt!memcpy () (C:\Windows\S
- Windows上的Flite API错误
- 可能的 std::async 实现错误 Windows
- c ++ to_string未在此范围错误 [Windows + Devcpp 环境] 中声明
- QT 5.8 SQL连接错误:Windows 10上未加载QMYSQL驱动程序
- Button类中的错误-Windows触发了断点SDL
- 链接错误:Windows上使用MinGW的Boost库
- 异步事件:已定义链接器错误[Windows Update API]
- “__m256”的包装器产生构造函数的分段错误 - Windows 64 + MinGW + AVX 问题