DirectShow 安裝配置(版本选择經驗)
2011-09-20 22:55
771 查看
對於剛剛接觸 DirectShow 的人來說,安裝配置是一個令人頭疼的問題,經常出現的情況是最基本的
baseclass 就無法編譯。
一開始我也为此費了很大的功夫,比如說修改代碼、修改編譯選項使其編譯通過。因为大家 Visual Studio 的版本與 DirectShow 的版本各不相同,導致問題多種多样。網上的参考也不可盡信,往往花費了大量的時間和精力,程序仍沒有編譯通過,而喪失學習 DirectShow 的興趣和信心。
我在 Visual Stdio 6.0,2003,2005,2008 都嘗試過了配置 DirectShow,基本可以達到不需要修改代碼就可以編譯通過。經驗就是,要配合
Visual Studio 的版本選擇不同的 DirectShow 的版本。一般來說,要選取
比同時期的 Visual Studio 略晚發行的 DirectShow 版本。(我覺得,微軟至少要對新發行的 DirectShow SDK
在當前主流的編譯環境中測試才對,所以一般這種匹配都是很容易一下子編譯通過。)
陆其明老師的《DirectShow 開發指南》是一本不錯的書,使用的環境就是
VC 6.0。按照我剛才的理論,幾乎所有的 DirectShow 版本都可以容易的安裝在
VC 6 上,因为它太古老了。不過,要是安裝最新的 SDK 反而不行,因为 VC 6 的編譯器問題很多,對標准支持得也不是很好,所以導致最新的 SDK 無法編譯。
陆的書上所用的版本其實是 dx9sdk.exe
(2002.12.19),我這裏给出的是微軟官方的鏈接(他們把所有的版本都保留了),需要正版驗證才能下載(應該不成問題吧...)。
我建議使用 DirectX
SDK Summer 2004 版本,這個版本是最後一個整合 DirectShow 的
DirectX SDK版本。
之後微軟把 DirectShow 分離出來了,比如需要安裝 DirectX
SDK April 2005 版本再加上 DirectX
SDK February 2005 Extras。也就是說,DirectX 已經不含 DirectShow,這個時候(2005年)它被包含在
Extras 裏面。所以安裝了 Extras 基本上就可以進行 DirectShow 開發了。
這個版本建議安裝
Summer 2004 這個版本。Extras
也沒問題。
這個版本我用的不是很多,印象中安裝
Summer 2004 沒問題,甚至更低的 9.0b 也沒問題。安裝很新的版本就會出現我說的那種太超前反而編譯不了的現象。
大概到 2006 年,DirectShow 就被包含在了
Windows Platform SDK 中。不知道最新的 Platform SDK 對 VS2005 支持地如何,我沒有去試。之前有一個版本需要修改一些代碼才能編譯。
非常簡單,安裝最新版的 DirectX
SDK June 2008 和 Platform
SDK (2006.03.15) 即可。另外,Platform SDK 的後續版本似乎叫
Windows SDK,內含的 Media Foundation 似乎要取代 DirectShow。(Windows
SDK for Windows Server 2008 and .NET Framework 3.5 2008.02.05)
如果 DirectShow 的版本比
VS 要新,則相應的頭文件和庫文件就會自動配置,否則就要手動添加。
如果安裝的 DirectShow 比較早,那麼在
baseclasses 裏面就會有相應的工程文件,打開編譯即可。如果安裝的是 Platform SDK 就會只有一個 makefile,注意到在安裝完 Platform SDK 以後,開始菜單會有一些進入不同編譯環境的快捷方式,選一個想編譯的版本進入,然後在
baseclasses 下 輸入 nmake,就會自動編譯了。
還需要注意的就是一些庫的引用、編譯鏈接的選項等等,在出現問題的時候搜索就行,一般不是大問題。
有一篇文章可以在遇到編譯錯誤的時候参考:Some DirectShow Samples
Break in Visual Studio 2005。
From:/article/6318098.html
baseclass 就無法編譯。
一開始我也为此費了很大的功夫,比如說修改代碼、修改編譯選項使其編譯通過。因为大家 Visual Studio 的版本與 DirectShow 的版本各不相同,導致問題多種多样。網上的参考也不可盡信,往往花費了大量的時間和精力,程序仍沒有編譯通過,而喪失學習 DirectShow 的興趣和信心。
我在 Visual Stdio 6.0,2003,2005,2008 都嘗試過了配置 DirectShow,基本可以達到不需要修改代碼就可以編譯通過。經驗就是,要配合
Visual Studio 的版本選擇不同的 DirectShow 的版本。一般來說,要選取
比同時期的 Visual Studio 略晚發行的 DirectShow 版本。(我覺得,微軟至少要對新發行的 DirectShow SDK
在當前主流的編譯環境中測試才對,所以一般這種匹配都是很容易一下子編譯通過。)
Visual C++ 6.0
陆其明老師的《DirectShow 開發指南》是一本不錯的書,使用的環境就是VC 6.0。按照我剛才的理論,幾乎所有的 DirectShow 版本都可以容易的安裝在
VC 6 上,因为它太古老了。不過,要是安裝最新的 SDK 反而不行,因为 VC 6 的編譯器問題很多,對標准支持得也不是很好,所以導致最新的 SDK 無法編譯。
陆的書上所用的版本其實是 dx9sdk.exe
(2002.12.19),我這裏给出的是微軟官方的鏈接(他們把所有的版本都保留了),需要正版驗證才能下載(應該不成問題吧...)。
我建議使用 DirectX
SDK Summer 2004 版本,這個版本是最後一個整合 DirectShow 的
DirectX SDK版本。
之後微軟把 DirectShow 分離出來了,比如需要安裝 DirectX
SDK April 2005 版本再加上 DirectX
SDK February 2005 Extras。也就是說,DirectX 已經不含 DirectShow,這個時候(2005年)它被包含在
Extras 裏面。所以安裝了 Extras 基本上就可以進行 DirectShow 開發了。
Visual Studio 2003
這個版本建議安裝Summer 2004 這個版本。Extras
也沒問題。
Visual Studio 2005
這個版本我用的不是很多,印象中安裝Summer 2004 沒問題,甚至更低的 9.0b 也沒問題。安裝很新的版本就會出現我說的那種太超前反而編譯不了的現象。
大概到 2006 年,DirectShow 就被包含在了
Windows Platform SDK 中。不知道最新的 Platform SDK 對 VS2005 支持地如何,我沒有去試。之前有一個版本需要修改一些代碼才能編譯。
Visual Studio 2008
非常簡單,安裝最新版的 DirectXSDK June 2008 和 Platform
SDK (2006.03.15) 即可。另外,Platform SDK 的後續版本似乎叫
Windows SDK,內含的 Media Foundation 似乎要取代 DirectShow。(Windows
SDK for Windows Server 2008 and .NET Framework 3.5 2008.02.05)
進行環境配置
如果 DirectShow 的版本比VS 要新,則相應的頭文件和庫文件就會自動配置,否則就要手動添加。
如果安裝的 DirectShow 比較早,那麼在
baseclasses 裏面就會有相應的工程文件,打開編譯即可。如果安裝的是 Platform SDK 就會只有一個 makefile,注意到在安裝完 Platform SDK 以後,開始菜單會有一些進入不同編譯環境的快捷方式,選一個想編譯的版本進入,然後在
baseclasses 下 輸入 nmake,就會自動編譯了。
還需要注意的就是一些庫的引用、編譯鏈接的選項等等,在出現問題的時候搜索就行,一般不是大問題。
有一篇文章可以在遇到編譯錯誤的時候参考:Some DirectShow Samples
Break in Visual Studio 2005。
From:/article/6318098.html
相关文章推荐
- 从机器的配置浅谈Linux版本的选择
- 从机器的配置浅谈Linux版本的选择
- VS2010上的OpenCV的版本选择与配置
- 到底该装windows8系统32位还是64位系统(根据配置选择版本)
- window10下同时安装python2.7和python3.5,并配置sublime ctrl+B选择运行python版本
- jQuery知识点(1)-版本选择与下载配置
- XSD版本到底怎么选择正确的进行配置
- OpenCV的版本选择与配置
- 系统中同时有 python2和 python3,怎么让 ipython 选择不同的版本启动?
- 11步教你选择最稳定的MySQL版本
- 为Hadoop集群选择合适的硬件配置
- 分布式版本控制系统Git(一):Git安装配置、基本命令
- 绿色版本Tomcat的系统服务配置
- tomcat6版本虚拟目录详细配置
- Oracle版本差异配置(转)
- struts 多文件上传 annotation注解(零配置)+ ajaxfileupload + 异步 版本
- windows下的qt creator 和 vs2010配置glut工具库(qt 5.5.0版本)
- anaconda jupyter notebook配置python3和python2两个版本
- SpringMVC整合Quartz实现定时任务和Crontrigger时间配置和版本问题
- 还在为AndroidStudio的Gradle版本配置头疼?看看老司机的解决方法吧