调试directshow的filter

调试filter有2种方法

filter中使用outputdebugstring输出使用Dbgview查看,另外一种是巧妙是MesageBox,然后attach进程来调试。

下面详细说一下。

1. OutputDebugString + DbView

在filter的关键地方,使用OutputDebugString输出信息,然后利用其它程序,如GraphEdit,加载运行filter,打开Dbgview工具来查看对应的输出。这种方法优点是简单,但是每次想查看其它的问题就得重新编译运行。

2. MessageBox + attach进程

在filter的关键地方,添加如下代码:

::MessageBoxA( NULL, “Debug”, “”, MB_OK );

然后利用其它程序,如GraphEdit,加载运行filter。

当代码运行到上面的那句代码处就会弹出对话框,此时不要着急点击ok/确定按钮,而是visualstudio attache到GraphEdit进程,接下来打开对应的代码,在那句代码的下一行打上断点,现在再点击 ok/确定,就进入断点处的代码了,现在你想怎么调就怎么调。

其实filter,虽然是ax为后缀的文件,其实就是一个dll,知道这点就不难想出上面的调试方法了。

完。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示