網頁

2014年7月5日 星期六

[DirectShow] Install VS2010 + DirectShow on Windows 7

 

最近遇到工作上需要用到 DirectShow 來做 moive 的顯示, 但是在 setup 環境的時候, 遇到一些問題, 參考一些資料, 再加上自己 try and error 之後, 終於搞定了. 在這邊把過程記錄下來, 供自己及有需要的人參考.

DirectShow 原本叫做ActiveMovie, 做為 MicroSoft 對抗 QuickTime 的技術. 後來又改名為 DirectShow, 作為 DirectX 的一部份. 在一段時間之後, DirectShow 被移出 DirectX SDK, 而整合到 Window SDK 之中.

Windows SDK 則有另一段故事. Windows SDK 原本是 MicroSoft 對不同版本的作業系統所發布的 SDK, 以提供開發人員利用新的作業系統所提供的 API, 開發新的應用. 在 Windows 98 之後, 這個 SDK 改名為 Platform SDK, 在 Windows Vista 時改名為 Windows SDK.

安裝準備

由於工作需求, 安裝的環境是 Windows 7, VS 2010 + VS2010 SP1 + Windows SDK 7.1

由於之前安裝的 VS2005, VS2008, VS2012, Windows SDK 6.0/Windows SDK 7.0, 安裝過程中一再遇到問題, 後來決定整個移除掉. 但是 MicroSoft 並沒有很簡便可以移除這一堆東西的方法, 只能從控制台/程式集/程式和功能/解除安裝程式中, 有 2005/2008/2012/SDK 這些字樣的部份一個一個移除.

可以的話, 建議儘量用沒有安裝過 Visual Studio 和 SDK 的系統, 可以省不少不必要的麻煩.

安裝 Visual 2010

安裝 VS2010 其實很簡單, 一直按就可以了. 這邊的貼圖只是用來強調 MicroSoft 在安裝 Visual Studio 的時候, 附帶安裝了多少想都想不到的元件. 譬如說, VC 9.0 runtime.

01-setup

選擇 Full 安裝

02-setup

Visual Studio 安裝元件列表一

03-setup

Visual Studio 安裝元件列表二

04-setup

Visual Studio 安裝元件列表三

05-setup

有消息指出, 如果 Microsoft Visual C++ 2010 runtime 的版本高於 10.0.3019 需要移除 (如果已經安裝 SP1 的話, 有可能出現). 運氣很好, 剛好是一樣的, 所以不需移除.

06-vc-runtime

安裝 Windows SDK 7.1

Windows SDK 7.1 有兩種安裝方式,

1. web install, 在以下 link , 下載 winsdk_web.exe, 下載完直接安裝

http://www.microsoft.com/en-us/download/details.aspx?id=8279

2. iso install, 在以下 link, 下載 iso 檔安裝.

http://www.microsoft.com/en-us/download/details.aspx?id=8442

需要注意的是, 這裡有 3 個檔案,

GRMSDK_EN_DVD.iso 這是 for x86 的環境 ( 作業系統 Windows 的版本)
GRMSDKX_EN_DVD.iso 這是 for x64 的環境 ( 作業系統 Windows 的版本)
GRMSDKIAI_EN_DVD.iso 這是 for Intel Itanium ( IA-64) 的環境

07-sdk

安裝過程就只是比較久而已

08-sdk-license

09-sdk-selection

010-sdk-install

安裝 VS2010 SP1

執行 SP1 中的 setup.exe

11-vc2010-sp1

 

12-vc2010-sp1-setup

安裝 KB2519277

Windows SDK 7.1 適用的 Microsoft Visual C++ 2010 Service Pack 1 編譯器更新

http://www.microsoft.com/zh-tw/download/details.aspx?id=4422

到這邊, 安裝的部份已經完成. 接下來要修改 DirectShow 的建置環境

Build strmbasd.lib for DirectShow

打開 D:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses 的這個 project, 在 Property\Configuration Properties\General\Target name 改成 strmbasd.

strmbasd.lib 會是 DirectShow 大部份的應用會用到的 library.

13-dshow

14-dshow

這樣就完成了建置的工作.