DMO播放器经验总结
2011-05-17 13:52
260 查看
DMO
播放器经验总结
操作系统:
Window XP
IDE
:
VS2005
1
1.1
播放器主要用到
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
打开
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
以
DXSDK
中的
DMO
程序(
C:/DXSDK/Samples/C++/DirectShow/Players/PlayDMO
)开始学习如何编写一个
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
播放器。
相关文章推荐
- 播放器适配经验总结——IOS
- 播放器适配经验总结――IOS
- WINCE应用层设计经验总结-关于TCPMP播放器制作
- 播放器适配经验总结――Android
- 播放器适配经验总结——IOS
- WINCE应用层设计经验总结-关于TCPMP播放器制作编译篇
- 播放器适配经验总结——Android
- 关于动态链接库调用的一些经验总结
- ios arc 经验总结
- 不能不记住的编程经验总结
- 测试工作经验总结3:简短的总结?
- 被JAVA架构师面试后的经验总结
- 10年跳槽经验总结 高级人才不用找工作
- 将eclipse上的web项目部署到Tomcat服务器上经验总结
- 总结过去10年的程序员生涯 (经验)
- 经验总结一
- 试衣间的经验总结
- Week1 Team Homework #1 from Z.XML-总结学长经验教训
- 开发面试经验总结
- 字符识别OCR研究三 字符识别,字符区域定位 经验总结: