Directshow的開發環境配置

2021-05-08 09:13:15 字數 1650 閱讀 3754

各位仁兄:序言(

這是我的師兄寫給我的關於如何設定directshow開發環境,現在把它資源共享,我也很希望早日寫出自己的正確理解,對於directshow開發指南一書,本人剛剛開始,還學習請大家多多指教。)

如下:首先,原書中第乙個配製說:「確認已經編譯過基類源**生成乙個…… 」我想這裡你可能不知道該怎麼做,具體的預編譯操作過程詳細如下:

開啟資料夾:(注意:此時,我預設為你的sdk開發包是預設安裝的再c盤下的)

c:/dxsdk/samples/c++/directshow/baseclasses

中找到baseclasses.dsw檔案,然後啟用vc6.0開啟這個檔案。

單擊bulid|batch build選單項,在彈出的視窗中選中debug和release核取方塊,然後單擊rebuilt all按鈕,vc6.0將生成debug和release版本的庫檔案。開啟資料夾c:/dxsdk/samples/c++/directshow/baseclasses,你會看到此資料夾中多出了兩個資料夾:debug和release,裡面分別有檔案strmbasd.lib和strmbase.lib。將這兩個檔案複製到c:/dxsdk/lib資料夾中。

這樣,原書中的第一步叫你預編譯生成乙個庫檔案(不管你的編譯環境是debug還是release都有了相應的庫檔案)

二,書中第三個配置說:「實現filter的原始檔中一般要包含……」:

此處不需要你做任何修改,知識提醒你在filter的專案中藥包含乙個這樣的標頭檔案,如果你編譯出錯提醒你差這個標頭檔案那麼到時候你再在檔案的開頭寫:#includes

三,書中第七個配置說:「定義乙個.def檔案用於匯出dll(dynamic link library的縮寫,即:動態鏈結庫)函式……」

此處你需要注意如下:

1,如果你是單純的安裝配置directshow編譯環境則不需要你做這個配置。因為這個配置實際上它是乙個檔案,是包含在vc專案下的乙個檔案。

2,這個檔案不是所有的directshow專案都要包括的,比如,如果你的filter是嵌入在應用程式裡面的filter則不用你寫這個檔案。

3,如果你的工作是開發乙個filter,則在你的vc專案中就要寫這樣乙個.def檔案用來匯出相關的動態鏈結庫。

可能說得你有些糊塗,我給你舉乙個列子。你開啟如下:

c:/dxsdk/samples/c++/directshow/filters/ball

這裡是開發包自帶的乙個filter專案,專案名稱叫「ball」,這裡由於它是乙個單獨的filter,所開發的就是乙個filter所以你在裡面能夠看到有這樣乙個檔案ball.def它就是我們剛剛所說的那個檔案,完成的功能在於匯出dll。因此,今後如果你要開發編寫寫乙個單獨的filter那麼你就要寫乙個.def檔案。

寫這個def檔案的方法很簡單,在你的專案下新建乙個文字文件,按照書中的方式寫上**,再將字尾名改為」.def」即可。

四,原書中說到:「定義dll的入口函式……」

其實在你寫的時候已經有了dll,自動生成的。當時我也是問的乙個朋友,叫我不必太管這個。我檢視了相關的人家的配置也都沒有說這一步,你可以不管它。具體的我也不完全明白。牽涉到內部的東西。

五,原書最後的配置library的時候有個配置:如下:

d:/program files/microsoft sdk/lib

沒有這個東西,可能是版本的問題,你跳過它。

VC 中使用DirectShow環境配置

1 將directx包安裝在c盤根目錄下 c dxsdk 2 將 c dxsdk include c dxsdk samples c directshow baseclasses加入vc的include下 tools options directories 3 這個時候編譯directshow的程式...

DirectShow開發快速入門之二資料流的流動

directshow資料流動概述 filter之間的資料是通過sample來傳送的。sample是乙個com元件,擁有自己的一段資料緩衝buffer,這個com元件暴露了imediasample介面。這個sample一般都有乙個叫做記憶體分配器 alloctor 的com物件來建立管理,這個物件具有...

DirectShow開發快速入門之事件通知機制

摘要 這篇文件描述directshow中事件產生的機制,以及應用程式是如何處理事件的。概述 事件是graph圖和應用程式之間互相通訊的機制,類似於訊息機制。當某個事件發生時,比如資料流結束,產生乙個錯誤等,filter就要給filter圖表管理器 graph manager 傳送乙個事件通知。fil...