我最先下载的是dxsdk_feb2005和dxsdk_feb2005_extras,解压出来之后发现 DirectShow 是在 extras 的文件夹里,这应该就是所谓的从 DirectX 中分离了出来吧。解压完第一个文件后接着进行安装,没啥问题。然后又按照网上很多人的方法在VC6下进行配置,编译BaseClasses。首先遇到的第一个问题是没有.dsw工程文件,只有.sln文件。自己创建了一个Win32 Static Library工程,将所有文件加入到了工程里面,编译。第二个问题,编译后出错,找了很多解决办法,但是还是编译不成功,不能够得到Debug和Release文件夹。
最后我选择了放弃这个版本的尝试,又下载了dxsdk_sum2004 。同样的方法解压、安装、配置、编译。同样还是遇到了上面的两个问题。这时我开始怀疑是不是自己哪个地方操作错误,才导致出现了同样的错误。上网找了很多方法,仔细分析了一下自己的整个过程,没有发现有什么问题,但就是没法编译通过。
最后,还是继续寻找 Direct 9.0b 的版本,这时急噪的我已经分不清微软的这些版本了。苦苦寻找,终于找到了一个链接,下载下来用同样的方法解压缩,这时还是和以前一样。然后进行安装,默认的安装路径是 C:/DXSDK,这个地方和之前的安装过程不一样,确定之后安装的组件和和以前不一样,之后直到安装完成,没有出现什么问题。到路径 C:/DXSDK/Samples/C++/DirectShow/BaseClasses 下,发现里面有个.dsw的工程文件,暗自欣喜。双击用 VC6.0 打开,project -> Settings -> Libreary 下发现输出文件名已经默认是 STRMBASE.lib,而且在 C/C++ 选项框下也不用改动。Build -> Set Active Configuration,分别选择Debug和Releae版本进行编译,编译成功!这时BaseClasses文件夹下已经生成了我们所希望的两个子文件夹,里面有我们希望的.lib文件。
最后一步了,打开VC6.0,在Tool -> Option,选择Directories选项卡,分别添加Include files和Libreary files。具体如下:首先选择 Include files
C:/DXSDK/Include
C:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES
C:/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
再在Show directories for中选择Library files,配置如下:
C:/DXSDK/Lib
C:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES/DEBUG
C:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES/RELEASE
C:/Program Files/Microsoft Visual Studio/VC98/LIB
C:/Program Files/Microsoft Visual Studio/VC98/MFC/LIB
这时应该是可以使用了,打开之前下载的一个视频解码程序,编译 ,运行,当我看到有视频在自己的程序中播放时,今天的工作终于完成了!
从早上十点左右开始研究 DirectX 及它的安装,到下午五点才搞定,期间遇到的很多问题现在还不能解释。网上众说纷纭,而且很多文章是没有经过亲自实验过,或者直接转的别人的,这样给我们初学者造成了很大的误导。最后附上我安装成功的 DirectX SDK 的链接地址,希望和我一样的初学者能很快的配置好,进入到学习阶段。
http://cid-a76c4a4a3032ded0.skydrive.live.com/browse.aspx/.Public/DirectX 9.0b SDK