您的位置:首页 > 产品设计 > UI/UE

Directshow的开发环境配置

2009-10-14 21:24 232 查看
各位仁兄:
序言
(这是我的师兄写给我的关于如何设置DirectShow开发环境,现在把它资源共享,我也很希望早日写出自己的正确理解,对于DirectShow开发指南一书,本人刚刚开始,还学习请大家多多指教。)
如下:
首先,原书中第一个配制说:“确认已经编译过基类源代码生成一个…… ”我想这里你可能不知道该怎么做,具体的预编译操作过程详细如下:
打开文件夹:(注意:此时,我默认为你的SDK开发包是默认安装的再C盘下的)
C:/DXSDK/Samples/C++/DirectShow/BaseClasses中找到BaseClasses.dsw文件,然后启用VC6.0打开这个文件。
单击Bulid|Batch build菜单项,在弹出的窗口中选中Debug和Release复选框,然后单击Rebuilt all按钮,VC6.0将生成debug和release版本的库文件。打开文件夹C:/DXSDK/Samples/C++/DirectShow/BaseClasses,你会看到此文件夹中多出了两个文件夹:Debug和Release,里面分别有文件strmbasd.lib和strmbase.lib。将这两个文件复制到C:/DXSDK/Lib文件夹中。
这样,原书中的第一步叫你预编译生成一个库文件(不管你的编译环境是Debug还是Release都有了相应的库文件)
 
二,书中第三个配置说:“实现Filter的源文件中一般要包含……”:
此处不需要你做任何修改,知识提醒你在filter的项目中药包含一个这样的头文件,如果你编译出错提醒你差这个头文件那么到时候你再在文件的开头写:#includes <Streams.h>
 
三,书中第七个配置说:“定义一个.def文件用于导出DLL(Dynamic Link Library的缩写,即:动态链接库)函数……”
此处你需要注意如下:
1,如果你是单纯的安装配置DirectShow编译环境则不需要你做这个配置。因为这个配置实际上它是一个文件,是包含在VC项目下的一个文件。
2,这个文件不是所有的DirectShow项目都要包括的,比如,如果你的filter是嵌入在应用程序里面的filter则不用你写这个文件。
3,如果你的工作是开发一个filter,则在你的VC项目中就要写这样一个.def文件用来导出相关的动态链接库。
可能说得你有些糊涂,我给你举一个列子。你打开如下:
C:/DXSDK/Samples/C++/DirectShow/Filters/Ball  这里是开发包自带的一个filter项目,项目名称叫“Ball”,这里由于它是一个单独的Filter,所开发的就是一个filter所以你在里面能够看到有这样一个文件ball.def它就是我们刚刚所说的那个文件,完成的功能在于导出DLL。因此,今后如果你要开发编写写一个单独的filter那么你就要写一个.def文件。
     写这个def文件的方法很简单,在你的项目下新建一个文本文档,按照书中的方式写上代码,再将后缀名改为”.def”即可。
 
四,原书中说到:“定义DLL的入口函数……”
其实在你写的时候已经有了DLL,自动生成的。当时我也是问的一个朋友,叫我不必太管这个。我查看了相关的人家的配置也都没有说这一步,你可以不管它。具体的我也不完全明白。牵涉到内部的东西。
 
五,原书最后的配置Library的时候有个配置:如下:
   D:/PROGRAM FILES/MICROSOFT SDK/LIB
没有这个东西,可能是版本的问题,你跳过它。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  filter dll library build 文档 c