DirectShow Filter调试方法
来源:互联网 发布:多列数据合并成一列 编辑:程序博客网 时间:2024/06/02 13:29
DirectShow Filter调试方法
关键字 DirectShow Filter Debug
原作者姓名 陆其明
文章原始出处 http://jemylu.spaces.live.com/
介绍
经常有人会问,我的Filter已经开发好了,但怎么来调试呢?怎么让程序在Filter代码上单步执行呢?其实,这个很容易做到。下面我就来讲一些具体的步骤吧。
正文
经常有人会问,我的Filter已经开发好了,但怎么来调试呢?怎么让程序在Filter代码上单步执行呢?其实,这个很容易做到。下面我就来讲一些具体的步骤吧。
Step 0:开发环境:Visual Studio .net 2003 + DirectX 9.0a SDK
Step 1:Filter的开发工作。这个过程就略过了。因为各人开发的Filter不尽相同,这里我们只以SDK的Ball为例,即DXSDK9a/Samples/C++/DirectShow/Filters/Ball。编译这个Filter项目的Debug版本,生成一个ax文件,假设为D:/DXSDK9a/Samples/C++/DirectShow/Filters/Ball/Debug/ball.ax。接下去要注册这个Filter,方法是:在命令行执行regsvr32 D:/DXSDK9a/Samples/C++/DirectShow/Filters/Ball/Debug/ball.ax。记住你的Filter的注册名,以便后面通过GraphEdit找到它;这里是“Bouncing Ball”。
Step 2:打开Ball项目的属性页,然后设置该Filter项目的执行程序为graphedt.exe,如下图:
Step 3:在Filter代码中设置断点。比如我们想看一下Filter对象的创建过程,那就在CBouncingBall类的构造函数中放一个断点;想跟踪一下Filter的数据流过程,则在CBallStream::FillBuffer函数中放一个断点。设置断点的方法不用我教了吧?——光标放到指定的代码行上,然后按下功能键F9。
Step 4:开始调试Filter项目。执行菜单命令Debug | Start,或者直接按下功能键F5。这时就可以看到我们指定的EXE程序运行起来了(这里是GraphEdit)。构建一个包含当前Filter的Filter Graph。比如首先找到“Bouncing Ball”这个Filter,把它加入到Filter Graph中去……这时候程序就会停在CBouncingBall类的构造函数的断点处了,如下:
在VC项目中按下功能键F5让程序继续运行,此时GraphEdit如下图所示:
继续构建完整的Filter Graph。这里我们可以Render这个Source Filter的Output Pin,结果如下:
Step 5:跟踪Filter运行时的动态行为。执行GraphEdit的菜单命令Graph | Play,上面构建的Filter Graph就真正跑起来了。这时候我们可以看到程序停在了CBallStream::FillBuffer函数的断点处。我们的目标最终达成了!!!
注:Filter最初开发完成之后,一般首先在GraphEdit中进行调试,方法和步骤就是上面介绍的。当通过了初步测试、把这个Filter应用到具体的软件产品之后,一般还会进行一些调试。这时候就需要把Filter项目的执行程序指向使用这个Filter的软件产品的EXE文件了。
正文完
- DirectShow Filter调试方法
- DirectShow Filter调试方法
- DirectShow Filter调试方法
- VS.net中DirectShow Filter调试方法!~
- directshow filter 调试步骤
- directshow filter 调试步骤
- 调试directshow的filter
- directshow filter 调试步骤
- directshow filter 调试步骤
- DirectShow--filter 开发 之 编译调试
- DirectShow--filter 开发 之 程序调试
- Directshow - Create DirectShow Filter DLL
- 深入浅出DirectShow Filter
- 深入浅出DirectShow Filter
- DirectShow-Filter原理
- DirectShow Filter 编写杂记
- 深入浅出DirectShow Filter
- Directshow 注册 source filter
- 找回Redflag6.0下弄丢的输入法系统托盘图标
- 做人千万不能这样
- Linux下打开.chm格式文件的解决方案
- Firefox 3 查看QQ空间的问题——只能开8位以下QQ的空间
- 程序员的四个好习惯
- DirectShow Filter调试方法
- Linux下使用QQ和查看QQ空间
- 毕设题目——个性化推荐系统
- Redflag 6.0 Linux下装 nvidia fx5200显卡驱动
- 云计算的开放性与非垄断性(2):云存储商冗余阵列
- 规划人生
- vc读取文本到数组
- 百度遭黑客攻击陷入瘫痪 DNS解析记录被篡改
- http://www.cnblogs.com/AndyGe/archive/2009/12/17/1614402.html