这两天碰到个新问题,用原来写的CFilterDataSender类(一个render filter,用途只是把视频数据抛出链路) ,在QueryInterface借口的时候程序异常(在Mobile系统中,程序如果异常不会退出,会忽略该次操作)。遍寻原因未果。把原来的程序拿出来编译后通过。分析原因如下:
1. 两个静态库的结构不同(把视频采集和播放部分封在静态库中),一个把directshow的构造类直接暴露给外部调用,一个在构造类外又包裹一层。
2. 新改的库在执行文件link的时候老是会报NonDelegatingRelease函数找不到(已经把DEBUG编译选项去掉了)是否因头文件包含顺序不同,而导致编译有问题?
现最大的可能就是结构问题引起的。持续观测中。