1.安装DirectShowSDK开发包
我用64位Windows10加VS2015
目前,新版的DirectShow并没有包括在DirecxtX中一起发布,而是和Windows SDK一起打包发布,因此首先要下载最新的Windows SDK,里面包含了DirectShow的头文件和库文件。
64位选择下载 GRMSDKX_EN_DVD.iso,如果是32位操作系统就要选择下载 GRMSDK_EN_DVD.iso。
下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=8442
然后一直安装不成功
我的解决办法:安装前要先卸载掉比Microsoft Visual C++ 2010 x86(x64) Redistributable - 10.0.30319更高的版本(不用卸这个版本)
然后就成功安装了,安装的东西在C:\Program Files\Microsoft SDKs\Windows\v7.1里,嘻嘻
2.开发环境的配置
- 编译baseclasses项目
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses
编译baseclasses项目的Debug版本生成Strmbasd.lib,Release版本生成Strmbase.lib。 - 在你的开发工程配置属性|VC++目录中的包含目录加入对应的文件路径(注意先后次序,否则可能报错)
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\common - 在你的开发工程配置属性|VC++目录中的库目录加入对应的文件路径(注意先后次序,否则可能报错)
Debug下:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug
Release下:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
C:\Program Files\MicrosoftSDKs\Windows\v7.\Samples\multimedia\directshow\baseclasses\Release - 在你的开发工程配置属性|链接器|输入中的附加依赖项加入对应的依赖项
Debug下:
Strmbasd.lib;Msvcrtd.lib;Winmm.lib;
Release下:
Strmbase.lib;Msvcrt.lib;Winmm.lib;
另外在配置属性|常规的平台工具集不要选Visual Studio 2015 (v140)选择Visual Studio 2015 - Windows XP (v140_xp),否则会报如下错误
错误 C2065 “SetDefaultDllDirectories”: 未声明的标识符
错误 C2065 “LOAD_LIBRARY_SEARCH_SYSTEM32”: 未声明的标识符
错误 C2039 “SetDefaultDllDirectories”: 不是“`global namespace’”的成员 c:\program files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\atlcore.h 644