0

我正在使用 CSource / CSourceStream 作为基础编写 DirectShow 捕获过滤器,但是当我在 Firefox + Flash 中访问 c​​am 时,我在关闭 Firefox 时收到调试断言和以下调试错误。

Cam6.ax(tid 1c98)   133506 : 
Cam6.ax(tid 1c98)   133506 :    ID             Object Description
Cam6.ax(tid 1c98)   133506 : 
Cam6.ax(tid 1c98)   133506 :    19 (001AE940)          Camera Stream
Cam6.ax(tid 1c98)   133507 :    18 (001AE940)                 Camera
Cam6.ax(tid 1c98)   133507 :     6 (001AE940)          Camera Stream
Cam6.ax(tid 1c98)   133507 :     5 (001AE940)                 Camera
Cam6.ax(tid 1c98)   133507 : 
Cam6.ax(tid 1c98)   133507 : Total object count     4

据我所知,这不是我的错。我怀疑 Flash 在关机时不干净地丢弃了 DirectShow 图。我已经阅读并重新阅读了 MSDN 文档并在网上搜索了示例,但一无所获。

任何人都可以帮助我澄清这一点或为我指明正确的方向吗?

4

1 回答 1

1

觉得这事有点傻。在花了一天时间查看引用计数等之后,结果证明这是一个新手错误。我用 /MDd 标志编译了 strmbasd.lib,用 /MD 标志编译了我的代码。前者针对调试运行时库,后者针对发布运行时库。

链接器发出了一个警告,但没有引起注意,代码一直运行到释放 DLL 的时间。去搞清楚..

我猜那是愚蠢的。:)

于 2010-04-08T16:08:57.723 回答