請問如何利用BCB+DirectShow來擷取影像 |
答題得分者是:cmf
|
Ricky_567
一般會員 發表:34 回覆:38 積分:19 註冊:2006-11-09 發送簡訊給我 |
請問各位大大: 1.之前有下載DSPACK來用,但小弟有個問題想請教,以DSPACK發展
出來的source能否移植至VC?如可行是否有相關資料可查詢?
(但我還是想用DirectX API來寫,不太想用DSPACK) 2.搜尋了相關文章後並未發現有利用BCB+DirectShow來擷取影像,
有的都是VC版看不太懂,是否有BCB的簡單範例能PO上來讓小
弟參考看看,或寄mail給我。(之前用的是vfw capture video) 3.是否有介紹DirectShow的相關中文書籍,坊間的DirextX書介紹
DirectShow的內容真是少的可憐。 (唉!MicroSoft真是老大,公司要求要改用VC+DirectX來發展,不想學都不行了) 謝謝!!
< >< >
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
|
Ricky_567
一般會員 發表:34 回覆:38 積分:19 註冊:2006-11-09 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
captures video devices streams, WDM compliantTVideoGrabber is a video capture component for Delphi and C Builder. With TVideoGrabber you can capture video frames, capture video and audio streams to AVI, compress video and/or audio streams on the fly or after capture using the standards codecs, draw text and images over video frames, use transparent windows, playback AVI files forwards, backwards, slower or faster. Full source code available. Requires DirectX 8 or higher.Download Now: http://www.datastead.com/vidgrab/vidgrab.zip [Video, Capture, Delphi, Builder, C , component, TVideoGrabber, Audio,]
------
︿︿ |
Ricky_567
一般會員 發表:34 回覆:38 積分:19 註冊:2006-11-09 發送簡訊給我 |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
這是一個簡要的指南,可以指導你如何在BCB中使用DirectX SDK。
禮琣b這裏假定你的BCB的安裝路徑在:C:\Borland\CBuilder\,DirectX SDK在C:\dx5sdk設置 Borland C Builder
#include
這是許多人遇到的麻煩, Borland在BCB的\Include路徑下提供了DirectX的頭檔, 如果只是把c:\dx5sdk\sdk\inc\加到BCB的include路徑下,它會進行如下步驟:
查找 C:\Borland\Cbuilder\Include\路徑
發現ddraw.h 頭檔,使用它;
除了他發現的是DirectX3的頭檔之外,倒是沒有什麼壞處,但這畢竟不是什麼好事。
為了避免BCB這樣做,我建議只是簡單的把DirectX SDK的\inc路徑下的檔都copy到BCB的\Include路徑下, 並且覆蓋掉原有的DirectX頭檔,相信我,這是在所有的解決辦法中最好的一種。
庫文件
可能在隨DirectX發放的Borland編譯器使用的庫檔有一些毛病,我建議你在這裏下載這個檔, 在BCB的\lib路徑下解壓,一切OK!
關於工程
千萬不要錯誤的使用範本創建工程,來創建一個程式,你可能不久就會明白了什麼叫做“悲慘世界”, 明智的解決辦法是進行如下四個簡單的步驟:
創建一個控制臺程式(console application);
Options | Project功能表選擇Linker頁面,然後將Console設置為Win32 GUI,
寫WinMain() 函數和 WinProc() 函數:
寫其他的部分。
這裏有一個例子。
這就完了嗎?
竄雂ㄘ砥A沒有!BCB使用一種老方式處理"define", 所以在每一個DircetX應用程式的define部分都要添加如下代碼:
#if defined( __BORLANDC__ ) && defined( __WIN32__ )
#define _WIN32
#endif
現在差不多了。
其他問題
如果編譯時還有問題,再試一試加入如下代碼:
#define WIN32
#define WIN95
------
︿︿ |
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |