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 即可
沒有留言:
張貼留言