2010年9月8日 星期三

DirectShow Environment Setup

設置 DirectShow 開發環境需要先下載下面兩個檔案
DirectX SDK 以及 DirectX SDK Extra
前者主要是 DirectX 所需要基本的 SDK, 而後者則包含了 DirectShow/DirectSound
下載完成之後直接安裝 DirectX SDK, 安裝完成之後會發現在
C:\Program Files\[SDK 安裝目錄]\Samples\C++ 發現到裡面並沒有 DirectShow/
此時只需要將 DirectX SDK Extra 所下載的檔案解開, 並把 Extra/ 裡的 DirectShow 複製到
上述目錄中即可, 完成之後應該會看到如下的結果:



看到 DirectShow 之後, 並不代表已經完成環境設定了, 比較麻煩的是需要自行去編譯 
DirectShow Libs
打開 C:\Program Files\[SDK 目錄]\Samples\C++\DirectShow\BaseClasses 底下的 
basesclases.sln, 針對 Debug/Debug_Unicode/Release/Release_Unicode 這四個都重新
編譯過, 編譯完成即可完成 DirectShow 環境建置
在編譯這四個版本的時候, 會遇到一些編譯上的問題, 因為 DirectShow 之前是利用 VC6 開
發, 所以在 compiler 比較嚴謹的 vs2005 下會有一些不合法的編譯錯誤

解決方式分別如下 : 
case 1:
   錯誤寫法 : operator=(LONG);
  (LONG) operator=(LONG);

case 2:
     for (long iDone = 0; ...)
     宣告不可在迴圈內使用, 須在 for 之前


DirectShow 環境設定好之後, 之後若需要使用 DirectShow 時, 只需要在專案中加入
   新增 Include Path : [SDK 目錄]\Include
                                  [SDK 目錄]\Samples\C++\DirectShow\BaseClasses
                                  [SDK 目錄]\Samples\C++\DirectShow\Common
   新增 Lib path     : [SDK 目錄]\Samples\C++\DirectShow\BaseClasses\Debug_Unicode (或是 Release)
   新增 linking lib  : strmbasd.lib winmm.lib (若是 release 則將 strmbasd.lib 換成 strmbase.lib)

[NOTE]
   若你的電腦有安裝 Nero, 就有可能會在執行過程中遇到 "Protection Error", 當發生時, 只需要
   移除 Nero 即可







   

沒有留言:

張貼留言