My First DirectShow Application

实际上,所有的code都是来源于<Programming Microsoft DirectShow for Digital Video and Television>.我现在真的是如此高兴,于是我就想到写BLOG了.你想,经过1天的郁闷,最后程序竟然可以运行了,此时的心情可想而知.现在,我来把这获得快乐与成功过程描述出来吧.

于几天前,我到www.itepub.net上找到了上面提到的书.可能大家会想,学DirectShow为何不用陆老师的书呢?原因是如此的简单,陆老师的书很喜欢讲每个函数的源代码,但是对于一个象我这样初次接触DirectShow的人来说,那些内容是如此的晦涩.而我此时的需要是:告诉我,某个函数的功能以及注意事项.于是,理所当然的,我找到了上面提到的那本书.说实话,本人英语还行吧,下载之后,一直看(有时间就看),看到了Part1的Programming DirectShow Applications,里面有一个范例DSRender,我没有这本书的源代码,看到书上有main函数,于是建了一个SLN,将main拷进去.由于初次接触DirectShow,根本不知道该包含什么头文件,也不知道要导入什么库文件,一编译,N多错误.

1 CoInitializeEx找不到,到MSDN一查,包含了头文件objbase.h,并加入:#pragma comment(lib,"Ole32.lib") .编译,仍然如此,BAIDU 一下,需要在C/C++的Processor中加入_WIN32_DCOM,按一下F5,该错误解决;

2 IGraphBuilder,IMediaControl,IMediaEvent标示符不可识. 凭经验找到VC7的文件夹,搜索包含内容:IGraphBuilder,IMediaControl,IMediaEvent,找到了其对应的头文件,包含进去,错误依旧.接着我又到DXSDK中找一下,发现要导入库strmiids.lib,用#pragma comment(lib,"strmiids.lib"),此时错误变了;

3 CLSID_FilterGraph不可识别.此时,我试过多种办法,错误依旧.不知为何,灵光闪现,竟然找到DXSDK的"Setting Up the Build Environment".看完后,恍然大悟.去掉先前不必的头文件,加入如下代码:

#include "dshow.h"

#pragma comment(lib,"strmiid.lib")

//下面的代码只有当你使用了 AMGetErrorText ,才需要

#pragma comment(lib,"Quartz.lib")

 

到此一切搞定,在没有随书光盘的情况下,通过阅读DXSDK,完成了My First DirectShow Application:DSRender.

I am so happy now.Hi ,friends,if you read this article and have some ideas ,please write down and contact me.

Of course ,if you have the codes of <Programming Microsoft DirectShow for Digital Video and Television ,contact me ,too.

My E-mail is:linyuancan@126.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值