本文大部分内容是在网上找的,也有根据自己遇到的问题,内容做了补充,笔记仅供参考。
由于现在directShow没有和direcxtx一起发布,而是和windows sdk 打包发布了,可以到官网下载最新的windows sdk 开发包。
下载DirectShow(实际上是下载最新的windows sdk)
由于现在directShow没有和direcxtx一起发布,而是和windows sdk 打包发布了,可以到官网下载最新的windows sdk 开发包。windows sdk 地址:http://www.microsoft.com/download/en/details.aspx?id=8442按系统类型下载。
GRMSDK_EN_DVD.iso x86
GRMSDKIAI_EN_DVD.iso Itanium
GRMSDKX_EN_DVD.iso 64位的amd cpu
如果你安装的是32位的windows 7,请下载x86
如果你安装的是64位的windows 7,请下载amd64
配置DirectShow
下载安装好之后编译baseclasses项目,在C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses.以管理员身份选择不同的编译环境 (Debug,Debug_MBCS,Release,Release_MBCS)可以得到四个类型的strmbasd.lib,开发项目时选择相应Debug版本的strmbasd.lib.
如果直接按F5运行,报错如下:
Unable to state program 'E:BaseClasses\.\Debug\baseclasses.lib' 系统找不到指定文件。。。
是运行方式问题,这个不是控制台程序,没有exe,是生成库的,不能直接点F5运行的,在solution explorer 里右击baseclass,选择rebuild,下面就根据网上的步骤走就行了
在项目中包含(1.选择任意项目2.切换到属性管理器3.点击Debug/Release里的Microsoft.Cpp.Win32.user)
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
以及lib:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release
也可以把Debug和Release目录下生成的strmbase.lib和strmbasd.lib拷贝到
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
目录下,这样就不需要包含后面Debug和Release目录了。
如果运行仍报同样的错误,先确定是否有qedit.h文件,qedit.h文件在
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include
目录下,如果没有找到可以去网上下载一下,也可去别的电脑里复制一个过来。并在#include “qedit.h”前添加以下代码:
#pragma include_alias( "dxtrans.h", "qedit.h" )
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__
#include "qedit.h"
参考blog:http://blogs.msdn.com/b/karinm/archive/2010/01/15/where-is-qedit-h.aspx