DMO播放器经验总结

 

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 播放器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值