介绍Directshow的一些文章链接,放在这里,作为普及读物。
http://www.learnsky.com/bbs/printpage.asp?BoardID=10&ID=887
http://tech.sina.com.cn/s/2005-08-18/0933696822.shtml
http://blog.youkuaiyun.com/laiyiling/category/251892.aspx
还有陆其明老师的博客:
http://blog.youkuaiyun.com/happydeer/archive/2007/04/01/1548426.aspx
http://jemylu.spaces.live.com/
几本书的源代码现在也都可以从如下地址下载到:http://www.directshow.cn/forum/viewthread.php?tid=302&extra=page%3D1
DirectShow在VC环境下的配置:
1. 分别在Debug和Release下编译基类源代码,Debug 生成strmbasd.dlib,Release下生成strmbase.lib, C:/DXSDK/Samples/C++/DirectShow/BaseClasses/baseclasses.dsw.
2. 配置VC编译环境:
Include files目录如下:
D:/DXSDK/Include
D:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES
D:/DXSDK/SAMPLES/C++/COMMON/INCLUDE
C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE
C:/Program Files/Microsoft Visual Studio/VC98/MFC/INCLUDE
C:/Program Files/Microsoft Visual Studio/VC98/ATL/INCLUDE
Libray Files目录如下:
D:/DXSDK/Lib
D:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES/DEBUG
D:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES/RELEASE
C:/PROGRAM FILES/MICROSOFT SDK/LIB
C:/Program Files/Microsoft Visual Studio/VC98/LIB
C:/Program Files/Microsoft Visual Studio/VC98/MFC/LIB
3. 配置必要的链接库文件,即在VC的菜单中选择Project|Settings|Link,在弹出的对话框中的Category中选择General,然后在Object/library modules中输入如下代码:
Debug版本 strmbasd.lib, msvcrtd.lib, winmm.lib
Release版本 strmbase.lib, msvcrt.lib, winmm.lib
并且选中Ignore all default libraries。
4. 如果按照上述操作仍有如下类似的错误提示
error LNK2001: unresolved external symbol _CLSID_FilterGraph
请在link下添加strmiids.lib和quartz.lib,特别是在2003开发环境下应当添加该链接库。因为DirectShow SDK建议,DirectShow应用程序应该至少连接库文件strmiids.lib和quartz.lib。前者定义了DirectShow标准的CLSID和IID,后者定义了导出函数AMGetErrorText(如果应用程序中没有使用到这个函数,也可以不连接这个库)。如果程序里包含了头文件streams.h,则一般库文件还要连接strmbasd.lib、uuid.lib、winmm.lib。
5.出现下述错误时error LNK2001: unresolved external symbol "class ATL::CAtlBaseModule ATL::_AtlBaseModule" (?_AtlBaseModule@ATL@@3VCAtlBaseModule@1@A)
Project|Settings|Link 在Debug下包含atls.lib ,在Release下添加atlsd.lib 库。