郁闷的DX9.0(DirectShow编程)

    本来就很想自己做个媒体播放器来耍耍,可惜一直没有机会。这次突然有机会接触到个跟视频流打交道的程序。欣喜若狂的开始,却被将近一周的配置DirectShow环境给击倒了。好,言归正题,方便其他人不要再绕很远的路。

      首先是SDK的问题,目前DX系列已经发展到9.0了,为了与时俱进我们还是多用最新版本吧。可惜,这个最新版本就是折腾人,网上你搜索DX9.0,绝对能收到一大堆,什么DX9.0c,DX9.0b.......等等,反正什么妖魔鬼怪都出来了。所以建议直接去微软官方下载,多少可以少不少妖魔鬼怪。但是微软也喜欢折腾人,好好的一个DX家族,现在也闹分离的;这就是为什么上面出现了很多9.0的不同版本,甚至有些还说是更新版本,这里请大家注意,我主要讲下9.0C与9.0B的区别。

      首先,9.0B是先与9.0C的老版本,理论上讲,后者功能更强与前者。但是由于它太先进了吧,微软居然把里面的DirectShow部分给分离出来,更可恶的也不独立成长,而是把它装到了Platform Sdk中。这之间的关系可把人头都弄大了,所以要想按以前常规的办法用DX9.0的话,建议还是装9.0B,有220多M,去官方进行下载,尽管新版本也能用,但是那个配置不是一下就能调出来的。所以我还是选择走老路。

      下载安装好9.0B后,接下来有个很麻烦的事情,需要自己编译库,也就是要生成strmbasd.lib。9.0B很方便,在你安装好的路径(比如我安装在C盘):C:/DXSDK/Samples/C++/DirectShow/BaseClasses很容易找到baseclasses.dsw, 打开此工程,选择DEBUG版本或则Release版本进行编译(注意不要选择Unicode版本,选他后总会出点错)。库生成后就开始我们自己工程项目的配置问题了。

      首先在在菜单栏里按(tools->Options->Directories),进行包含文件和相关库的设置:
Include文件:

C:/DXSDK/Include

C:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES

C:/DXSDK/SAMPLES/C++/COMMON/INCLUDE

Lib文件:

C:/DXSDK/Lib

C:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES/DEBUG

然后在(Probject->Setting->Linking)的Object/Library modules的框中加入刚编译通过的库strmbasd.lib 。

至此配置上几基本Ok。但要想你的程序成功跑起来,在你的工程文件,.h也好,.cpp也行,只要在用的类的开头加入以下几个包含文件:

#include <dshow.h>
#include <streams.h>

好,祝你一次性成功啊,不过第一次尝试的话,还是一步一步的来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值