博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DMO播放器经验总结
阅读量:4107 次
发布时间:2019-05-25

本文共 2063 字,大约阅读时间需要 6 分钟。

 

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

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

转载地址:http://kttsi.baihongyu.com/

你可能感兴趣的文章
Lua学习笔记 VC6下编译Lua源码
查看>>
Lua
查看>>
Lua与VC6结合
查看>>
Step By Step(Lua调用C函数)
查看>>
Step By Step(C调用Lua)
查看>>
Step By Step(Lua-C API简介)
查看>>
Step By Step(Lua系统库)
查看>>
Step By Step(Lua输入输出库)
查看>>
Step By Step(Lua字符串库)
查看>>
Step By Step(Lua弱引用table)
查看>>
Step By Step(Lua面向对象)
查看>>
Step By Step(Lua模块与包)
查看>>
Step By Step(Lua环境)
查看>>
Step By Step(Lua元表与元方法)
查看>>
Step By Step(Lua数据持久化)
查看>>
Step By Step(Lua数据结构)
查看>>
Step By Step(Lua编译执行与错误)
查看>>
Step By Step(Lua迭代器和泛型for)
查看>>
Step By Step(Lua函数)
查看>>
Step By Step(Lua表达式和语句)
查看>>