DMO播放器經驗總結

來源:互聯網
上載者:User

 

DMO
播放器經驗總結

作業系統:
Window XP

IDE

VS2005

1        



安裝
DirectX 9.0 SDK
1.1   


下載
DirectX
9.0 SDK

播放器主要用到
DirectX
中的
DirectShow API
,而微軟最新的
DirectX SDK
已經將
DirectShow
剝離出來,以
Extras
的形式發布,後來整合了一部分
SDK

Windows SDK
中,也就是說後來的環境(比如
vs2005

vs2008
環境下)比較難配置,極有可能不穩定,產生這樣那樣的錯誤。所以最好使用如下
SDK
安裝包(網上找到的,感謝那位分享資源的網友,我在官網上沒有找到合適的
SDK
):

DirectX 9.0 SDK

http://cid-a76c4a4a3032ded0.skydrive.live.com/browse.aspx/.Public/DirectX%209.0%20SDK

1.2   


安裝

將下載的
SDK
官解壓出來(如放在
dx9sdk_setup
目錄中),雙擊
Microsoft DirectX 9.0 SDK.msi
,安裝目錄
C:/DXSDK
,然後一路預設安裝。

1.3   


編譯
BaseClasses

開啟
C:/DXSDK/Samples/C++/DirectShow/BaseClasses/baseclasses.sln
,在
VS2005
中開啟此檔案,提示你進行必要的工程轉換,儘管轉換就好了。

編譯之前需要做一些配置,工具
->
選項
->
項目和解決方案
->VC++
目錄,設定環境變數:

¨        



包含檔案:

C:/DXSDK/Include

C:/DXSDK/Samples/C++/DirectShow/BaseClasses

C:/DXSDK/Samples/C++/DirectShow/Common

C:/DXSDK/Samples/C++/Common/Include


編譯時間會報一些錯誤:

¨        



C:/Program
Files/Microsoft Visual Studio 8/VC/PlatformSDK/include/winnt.h(222) : error
C2146: syntax error : missing ';' before identifier 'PVOID64'

解決辦法

:自己在
winnt.h
上加入定義

#define POINTER_64 __ptr64
,但感覺辦法不是很妥當,但苦於暫時沒有找到更合適的辦法。

 

¨        



error C4430: missing type
specifier - int assumed. Note: C++ does not support default-int
error C4430:
缺少類型說明符
-
假定為
int
。注意
: C++
不支援預設
int

分析

:錯誤發生在:
operator=(LONG);
這條語句中,這是因為在
VC6
中,如果沒有顯示的指定傳回值類型,編譯器將其視為預設整形;但是
VS2005
不支援預設整形。

解決辦法

辦法一

:解決這個問題不能修改每個沒有顯示指示傳回值類型的函數地方,可以用
wd4430
來解決;具體的在工程選項中的
c++/Command Line
中添加
/wd4430

即可,如。



方法二

:直接在將
operator=(LONG);
語句改成
LONG operator=(LONG);

 

¨        



error C2065: 'Count' :

未聲明的標識符

分析

:此錯誤發生在
for
迴圈中,
VC6

for
迴圈中定義的變數相當於在
for
外面定義,可以在
for
之外地方使用;但是
VS2005

for
迴圈中定義變數相當於域
{}
變數,只能在
for
迴圈中使用。

解決辦法

:要解決這個問題,可以通過修改
vs2005
的工程選項:
”Project Option”->“ C++ ”-> “Language” -> “Force
Comformance in For Loop Scrope”
設定為
No
即可,如。


 

完成上面的設定,
BaseClasses
工程基本可以編譯通過了,接著分別編譯
Debug

Release
兩個版本。

下面配置“庫檔案”環境變數(
工具
->
選項
->
項目和解決方案
->VC++
目錄
):

C:/DXSDK/Lib

C:/DXSDK/Samples/C++/DirectShow/BaseClasses/Debug

C:/DXSDK/Samples/C++/DirectShow/BaseClasses/Release

 

至此,
DirectShow
程式就可以編譯通過了。

2        



安裝終極解碼

Windows XP
作業系統中只支援少數的音視頻格式,安裝終極解碼後可以支援大多數的音視頻格式。

3        



DMO
播放器


DXSDK
中的
DMO
程式(
C:/DXSDK/Samples/C++/DirectShow/Players/PlayDMO
)開始學習如何編寫一個
DMO
播放器。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.