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

DMO播放器经验总结_第1张图片

编译时会报一些错误:

¨         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 即可,如下图。

DMO播放器经验总结_第2张图片

方法二 :直接在将 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 即可,如下图。

DMO播放器经验总结_第3张图片

 

完成上面的设置, BaseClasses 工程基本可以编译通过了,接着分别编译 Debug Release 两个版本。

下面配置“库文件”环境变量( 工具 -> 选项 -> 项目和解决方案 ->VC++ 目录 ):

C:/DXSDK/Lib

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

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

 DMO播放器经验总结_第4张图片

至此, DirectShow 程序就可以编译通过了。

2         安装终极解码

Windows XP 操作系统中只支持少数的音视频格式,安装终极解码后可以支持大多数的音视频格式。

3         DMO 播放器

DXSDK 中的 DMO 程序( C:/DXSDK/Samples/C++/DirectShow/Players/PlayDMO )开始学习如何编写一个 DMO 播放器。

你可能感兴趣的:(c,windows,Microsoft,url,编译器,behavior)