代码之家  ›  专栏  ›  技术社区  ›  Aaron

DirectShow CSourceStream筛选器无法正确卸载

  •  0
  • Aaron  · 技术社区  · 15 年前

    我正在使用CSource/CSourceStream作为基础编写DirectShow捕获过滤器,但是当我在Firefox+Flash中访问cam时,我得到一个调试断言,并且在关闭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文档,搜索了网络上的示例,但什么也没有找到。

    有谁能帮我澄清这件事,或者给我指出正确的方向吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   rogerdpack    13 年前

    觉得有点傻。在花了一天的时间查看参考数据和其他东西之后,结果发现这是一个没有错的错误。我用/MDd标志编译strmbasd.lib,用/MD标志编译代码。前者的目标是调试运行时库,后者是发布运行时库。

    链接器发出一个警告,但没有得到注意,代码一直运行到释放DLL的时候。算了吧。。

    我想把那件事归咎于愚蠢。:)

    推荐文章