您的位置:首页 > 其它

DMO播放器经验总结

2011-05-17 13:52 260 查看
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
播放器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: