DirectShow+VS2010+Win7配置說明


不得不說,使用windows的東西確實很麻煩,DirectShow這個東西不斷更新換代,書本上的知識完全跟不上時代,只能去博客上查資料。百度之后,看了大量的文章,終於完成了自己的DirectShow安裝,配置是Win7+VS2010+Windows SDK 7.1+VS2010SP1(補丁)+VC-Compiler-KB2519277。使用VS2012的同志們要注意了,可能配置的方法會很不一樣,因為據說VS2012集成了Windows SDK,不知道DirectShow又沒有被集成在里面,待我研究一下再發一篇詳細說明。
理論上,安裝順序如各路博主所說(順便附上下載地址):

(1)visual studio 2010 ( http://pan.baidu.com/s/1o65pOBg  密碼:  pzpw)
(2)Windows sdk 7.1  (http://www.microsoft.com/en-us/download/details.aspx?id=8279
(3)Visual studio 2010 sp1 (看博文 http://blog.csdn.net/feidewu/article/details/8105890
(4)VC-Compiler-KB2519277.exe (http://www.microsoft.com/zh-cn/download/details.aspx?id=4422

但是里面有很多的細節需要注意,本文中我會以大量圖片詳細展示安裝過程,希望能對大家有所幫助。

先講了一下自己剛開始安裝失敗的經歷,以供大家借鑒。

電腦上早已經裝好了VS2010,這個的安裝就不多說,基本就是狂點下一步。然后我下載了Windows SDK 7.1,解壓,點擊Setup安裝,安裝很快結束了,並沒有提示報錯,但這時候去到安裝目錄下C:\Program Files\Microsoft SDKs\Windows\並沒有發現v7.1這個文件夾,說明並未安裝成功。百度了一下,發現需要把NetFramework4.0以上的版本卸載掉,於是打開控制面板,發現電腦里裝的是NetFramework4.5,於是把所有帶NetFramework4.5字樣的軟件全卸了,包括語言包什么的。

原因可能是SDK 7.1會安裝NetFramework4.0到電腦上,因此要是發現電腦上有比4.0還高的版本,肯定就中止安裝了。這和后面安裝VS2010sp1要先卸載比Microsoft Visual C++ 2010 x86(x64) Redistributable - 10.0.30319 更高的版本原理是一樣的。
卸載之后我又裝了一遍SDK,這次倒是裝上了,發現VS2010卻打不開。然而我又不屈不撓的裝了VS2010sp1(補丁),結果出錯了。

VS2010SP1_4

仔細看攻略,原來SDK安裝時不能勾選VC_compiler選項,第一次裝的SDK的時候肯定是把這個選項勾上了(默認是打勾的)。為了防止再出什么意外,我直接卸載了VS2010和SDK,從頭開始。

1、從頭開始  Window SDK 7.1

 

按照博主們提供的步驟,從頭開始,先安裝VS2010,裝完特意去控制面板看了一下,此時已經是NetFramework4.0,看來是VS2010自帶的。接下來就可以放心得安裝Windows SDK7.1,只是安裝時注意不要勾選VC_compiler。裝完去安裝目錄下看一眼,已經有了7.1這個文件夾,說明裝好了。

DXShow_1

SDK安裝過程附圖如下:

首先檢測已安裝的組建

NetFramework4_1

NetFramework4_2

NetFramework4_3

下面這步最重要,一定記得把Visual C++ Compilers 這項的勾去掉

NetFramework4_4

 

NetFramework4_5

2、VS2010SP1
然后安裝VS2010SP1,這雖然只是VS2010的一個補丁,卻也有1.5G,最好安裝離線版,因為在線安裝非常容易中斷。安裝之前要先卸載掉比Microsoft Visual C++ 2010 x86(x64) Redistributable - 10.0.30319更高的版本(不用卸這個版本),比如11.0.XXXXX等。下圖中這個10.0.40219就得卸載掉,后面這個VS2012的補丁最好也卸載掉吧(沒在下圖這台電腦上試驗過,不過如果沒裝VS2012的話還是卸載掉好)

VS2010SP1_7.JPEG
安裝過程比較耗時,幾乎和安裝VS2010一樣慢。

VS2010SP1_1

VS2010SP1_2

VS2010SP1_3

VS2010SP1_5

VS2010SP1_6

 

 

 

3、VC-Compiler

裝完SP1補丁后,還剩最后一步,安裝VC編譯器,這步沒什么好說的,狂點下一步就好了。

VC_Compiler_1

VC_Compiler_2

 

VC_Compiler_3

VC_Compiler_4

4、編譯BaseClasses項目

安裝完后,需要編譯BaseClasses項目,目錄為---C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow。《Visual C++音頻視頻技術開發與實戰》一書(后文簡稱《實戰》)中以給出的目錄是show\Samples\C++\DirectShow\BaseClasses,因為當時的DirectShow還集成在DirectX里面,而現在是集成在Windows SDK里,以后隨着版本不同還可能改變,微軟就是這么坑,然而萬變不離其宗,大家耐心尋找應該能找到。
找到之后打開sln后綴的項目文件,用VS2010打開,會提示項目版本太低需要轉換,按照步驟點下一步轉換即可。

DXShow_2

然后在VisualStutio里生成解決方案(F7),由於《實戰》中用的DirectShow版本較低(VS2005),因此在VS2010中編譯時會出現各種錯誤,作者也給出了詳細解答(解決VS里各種莫名其妙的編譯錯誤確實很費腦子)。幸運的是,本文中使用的Windows SDK7.1兼容性還是蠻好,編譯一次通過。

為了在項目中使用編譯生成的庫文件,我們需要在四種模式(Debug,Debug_MBCS,Release,Release_MBCS)下分別編譯此工程,可以得到四個類型的strmbasd.lib分別在BaseClasses的相應目錄下。

DXShow_3

5、添加包含目錄、庫目錄和附加依賴項

編譯成功之后需要在項目屬性中設置包含路徑(Include)和庫文件(lib)的路徑,新建或打開一個項目,設置項目的通用屬性。在屬性管理器中選擇Debug或Release模式中的Microsoft.Cpp.Win32.user,修改通用屬性->C++目錄->包含目錄,添加以下包含路徑(注意順序不能錯,否則會報錯)

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\common

C:\Program Files\Microsoft SDKs\Windows\v7.1\Include

C:\Program Files\Microsoft Visual Studio 10.0\VC\include

注意以上路徑可能隨程序的安裝路徑而變化,筆者是把所有軟件都裝在了C:\Program Files下。

DXShow_11.JPEG

 

庫目錄中添加剛剛編譯生成的BaseClasses庫的lib文件的目錄:

C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug_MBCS

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release_MBCS

C:\Program Files\Microsoft Visual Studio 10.0\VC\lib

DXShow_13.JPEG

最后一步是設置通用屬性->鏈接器->輸入->依賴附件項,  添加:strmbasd.lib; winmm.lib; msvcrtd.lib; 其他博主們說在windows系統下要用分號隔開,但是我把他們分開放在了三行,也沒有問題,可能是放在同一行的話需要分號隔開吧。

DXShow_12.JPEG

配置完成

需要說明的是,在User屬性中完成了上述配置,之后再建立新的項目都會繼承這些屬性,不用重復配置,非常方便。下面就可以開始建立項目體驗DirectShow了。

下一篇,如何使用於世祺老師的CameraDS類

 

參考文獻:

http://blog.csdn.net/lzkit/article/details/18501637

http://jingyan.baidu.com/article/546ae1856161cf1149f28c95.html

http://blog.sina.com.cn/s/blog_7291f6ad0102v1yc.html

http://zhidao.baidu.com/link?url=9LkfygpBo6h6ug55ju-uYxQaW2qq2XVBra8Gck2GqC8LEyMniNfxUsbbayvEze9EHqpq0BwJHIuq3f6o3Cwx3iW21kl-0_EIIEvVQJIFb6G


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM