DirectShow9在VS2005或vc6.0下编译出现问题的解决方法

DirectX9.0bSDK(包含:DirectShow)环境搭建 .简介 DirectShow微软公司提供的一套在Windows平台进行流媒体处理的包,9.0b之前与DirectX在一起,后分开包含在WindowsSDK中! DirectShow是基于COM组件构建思想和Filter-Graph组织模式的一种流媒体处理库! //注解:本环境采用DirectShow9.0bSDK,本机环境Win10; 二.下载 DirectX9.0b之前的版本都是完整的,包含DirectShow,后续版本包含9.0c都不包括DirectShow,所以我们使用这个 阅读详情

DirectShow 下载 安装 配置 播放AVI文件源码 (综合转)

VFW(Video for Windows)是Microsoft推出的关于数字视频的一个软件开发包;
DirectShow是微软公司在VFW的基础上推出的新一代基于COM的流媒体处理的开发包,在视频开发中,不论从效率还是实用性上都明显好于VFW。
著名的OpenCV由于时间太早,其视频部分就是基于VFW做的,这点可以说是OpenCV的一个瑕疵;
DirectX8.0 至 DirectX9.0b 此其间的DirectX版本集成了DirectShow,DirectX9.0c以后DirectShow被集成在微软的其它SDK开发包中。
在学习和开发中,可直接下载DirectX9.0b(大约218M),没有其它办法,从微软官方或迅雷的gougou下载DirectX9.0b都可以

第一步:安装DirectX9.0b,要分2步走,最后得到目录比如: C:/DXSDK
第二步:DirectShow日常开发中最常用到的<strmbasd.lib>此文件并没有直接给出,需要我们手动编译,方法如下:
用vc6.0(不要管你以后用什么工具,这步最好用vc6.0)打开C:/DXSDK/Samples/C++/DirectShow/BaseClasses/baseclasses.dsw
好像能直接编译通过,编译设置win32 debug(先不要管那个win32 debug unicode),最后得到文件
C:/DXSDK/Samples/C++/DirectShow/BaseClasses/Debug/strmbasd.lib
如果这步编译不过去不要急,往下看......做完第三步定能编译过去,哈哈

第三步:不要想像别的SDK一样,只把用到的.h提出来就可以了,开发和学习过程中只能配置vc目录选项以找到相应的调用文件,
配置方法:vc6.0和vc2005相同,以vc6.0为例:工具-选项-目录

include files
C:/DXSDK/Include     //一定放在最上面,切记
C:/DXSDK/Samples/C++/DirectShow/BaseClasses //一定放在最上面,切记

library files
C:/DXSDK/Lib       //顺序随意
C:/DXSDK/Samples/C++/DirectShow/BaseClasses/Debug //顺序随意

第四步前传:第二步的strmbasd.lib一定要存在

第四步:vc6.0使用过程
在stdafx.h文件加入以下二行代码:
#pragma comment(lib, "strmbasd.lib")
#include <Streams.h>

F7编译,如果通过,vc6.0的DirectShow环境已OK

 

第五步:vc2005使用过程
在stdafx.h文件加入以下二行代码:
#pragma comment(lib, "strmbasd.lib")
#include <Streams.h>

F7编译,不通过,主要有2个错误
第1个错误:error C2146: syntax error : missing ';' before identifier 'PVOID64'
转到错误文件:winnt.h找到如下两行代码:
typedef void *PVOID;
typedef void * POINTER_64 PVOID64;

在这两行代码前加上这行#define POINTER_64 __ptr64可解决//只改一处哟,

再F7编译:提示:conversion from 'LONG' to 'PVOID' of greater size,这是第2个错误,注意这次是"PVOID"非上次的'PVOID64'
这个就不能一个一个地改了,因为有很多地方。这是因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整形;但是vs2005不支持默认整形,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用wd4430来解决;具体的在vs2005项目/属性/ C++/命令行/附加选项中添加/wd4430即可。

再F7编译:通过
vc2005的DirectShow环境已OK


第六步前传:用DirectShow编写1个播放avi视频文件的程序并运行,
做准备工作如下,一定要在网上下个ffShow解码器安装后才可以;不下我也不知道行不行,反正我是下完了运行没问题
关于ffShow解码器愿意看的本文最下面有个题外话

第六步:vc6.0或vc2005在Dialog上任意放个按钮,添加如下代码,编译,运行就可以了

 

 

关于ffShow解码器的题外话----------------目前几种常见的视频格式,我也不懂,乱抄的,详细自己查...

MPEG-1 活动图像专家组制定的,常见于VCD,120 分钟视频要1.2 GB,效果不清晰

MPEG-2 则应用在DVD的制作 120 分钟4GB到8GB大小左右,目前为止最清晰的视频,清晰到硬件不支持,因此MPEG-3流产了

rmvb    这时Real Networks公司研制出rm rmvb视频格式,相对于MPEG-2,有相近的清晰度,越小的体积,并支持网络实时传送和播放;

MPEG-4 为了对抗rmvb, MPEG-4出现了, 120分钟“瘦身”到300MB左右,清晰度也很可观,并支持网络实时传送和播放;但技术是保密的

DivX    很多高手看不惯,部分破解了MPEG-4 格式,DivX出现了,还可以把源文件压缩到600MB左右,但其图象质量则比MPEG-4要高出许多

这其中的一位更高的高手拿着大家的胜利果实自己开公司赚钱啦,并收回了DivX源码。

XviD    留下来的高手实在看不过去又继续开发出XviD,这个貌似是真正开源的,目前也相当厉害

还有很多视频格式,ffShow好象就是把这些视频格式的解码器,集中打包的意思了;

 

转自      vc 常用代码

DirectShow VC6.0 开发环境的搭建 今天要用DirectShow做一个音频采集程序,结果遇到的第一个问题便是开发环境的搭建,需要几步准备。1)下载支持DirectShow的SDK2)将SDK中的include和lib目录配置到VC6.0下(一般SDK在安装过程中会自己配置)3)编译SDK中samples中提供的项目,得到Strmbasd.lib winmm.lib库文件,这个要在新建的DirectShow工程中引用  阅读详情

相关推荐

VS2005编译T264总结

<br />系统环境:<br />XP Professional sp3<br />Microsoft Visual C++ 2005   77626-009-0000007-41206<br />DirectX 9.0(9.0b) SDK Update - (Summer 2003)<br /><br />第一步、编译T264.lib工程<br />1>------ Build started: Project: t264lib, Configuration: Debug Win32 ------<br

wcjy07220114的专栏 3990

VMR-9_DirectShow_vmr9_

Directshow VMR9 Video Render 叠加图片示例。

DirectX 9 安装包

部分老游戏需要这个包,比如红色警戒 3 运行报错缺少一些 dll 的时候就可能是要安装这个。

directshow9

directshow9 开发头文件和库

DirectShow9和QuickTime7是什么?要如何安装?

<br />QuickTime是苹果公司提供的系统级代码的压缩包,它拥有C和Pascal的编程界面,更高级的软件可以用它来控制时基信号。在QuickTime中 时基信号被叫做影片。应用程序可以用QuickTime 来生成,显示,编辑,拷贝,压缩影片和影片数据,就象通常操纵文本文件和静止图象那样。除了处理视频数据以外,QuickTime3.0还能处理静止图象,动画图象,矢量图,多音轨,MIDI音乐,三维立体,虚拟现实全景和虚拟现实的物体,当然还包括文本。它可以使任何应用程序中都充满各种各样的媒体。<br />

qq782724500的专栏 2995

DirectShow9下载及vc设置

在这里和大家分享下DirectShow9DirectX9.0c已经将DShow分离出去了,下载时请选DirectX9.0b者一下一个单独的,地址为:http://www.directshow.cn/SDK/DX9SDK.rar下面是配置过程:1,使用VC向导生成一个具体项目,如Win32 Dynamic-Link;2,包含头文件streams.h;3,在VC的菜单中选择P

xq20051221的专栏 1252

(转)DirectShow9VS2005vc6.0编译出现问题解决方法

1。我用的版本是DirectX9.0b ,没有安装,直接解压后放到一个文件夹里用 2。我按照以下的步骤操作成功。明天试着做个播放器。 VFW(Video for Windows)是Microsoft推出的关于数字视频的一个软件开发包;DirectShow微软公司在VFW的基础上推出的新一代基于COM的流媒体处理的开发包,在视频开发中,不论从效率还是实用性上都明显好于VFW。著名的Ope...

weixin_30493401的博客 183

DirectShow学习之一在vs2005中配置directshow开发环境

作者:liguisenBlog:http://blog.csdn.net/liguisen先介绍系统环境:XP Professional sp2visual studio 2005 version 8.0.50727.42DirectX 9.0(9.0b) SDK Update - (Summer 2003)首先,就是编译baseclasses,什么是baseclasses?打开你的d

LGS的BLOG 8437

VC6.0中安装DirectShow

今天要用DirectShow做一个音频采集程序,结果遇到的第一个问题便是开发环境的搭建,需要几步准备。1)下载支持DirectShow的SDK2)将SDK中的include和lib目录配置到VC6.0下(一般SDK在安装过程中会自己配置)3)编译SDK中samples中提供的项目,得到Strmbasd.lib winmm.lib库文件,这个要在新建的DirectShow工程中引用第一步,我为了能够开发DirectShow程序,曾想过用VC6.0VS2005,只要这两个有一个配置成功了,我便用哪个,因为我

mousely的专栏 1280

DirectShow+VS2005配置日记

<br /><br />由于需要进行视频采集,昨天开始搜索资料,发现现在流行的是DirectShow来进行开发,昨天下载安装了个DirectX 9.0 SDK,于是痛苦的配置旅程开始了。现在我们来重温一下这个痛苦的历程吧。先介绍下我的配置吧:<br />Microsoft DirectX 9.0 SDK + Microsoft Visual Stiduo 2005<br />我的Microsoft DirectX 9.0 SDK 安装在D盘根目录,进入这个目录D:/DXSDK/Samples/C++/Dir

henryjee的专栏 1704

DirectShow9

有些程序需要DirectShow9和QuickTime7支持,但大多资源都是用不成的,这个DirectShow9保证能用,第一次传资源谢谢支持

directshow dx9 directx9

directshow dx9 directx9SDK,DirectShow的SDK、及微软提供的samples,都包含在windows SDK中

DirectX 9 SDK的安装包,包含DirectShow

Directshow SDK,包含DirectShow的SDK 文件, Samples例子,还有一个编译步骤

direct SDK 9.0b 中的DirectShow Sample

从DirectX9.0b SDK中提取出来。有需要的下:)

代码从VS2003升级到VS2005编译链接问题解决方法

最近做了一个代码从VS2003升级到VS2005的工作,出现了不少问题,在参考了一些网上的资料和朋友的帮助后,再加上自己的分析调查,到目前为止出现的问题解决了。由于发现网上这方面的资料似乎比较零散,为了使同样要做VS2003(VC6)程序向VS2005VS2008)转化的朋友能够少走一点弯路,整理如下,也欢迎各位网友提出宝贵意见建议。

dhm2000的专栏 1743

DirectShow SDK编译中易出现的问题

由于需要进行视频采集,昨天开始搜索资料,发现现在流行的是DirectShow来进行开发,昨天下载安装了个DirectX 9.0 SDK,于是痛苦的配置旅程开始了。现在我们来重温一下这个痛苦的历程吧。先介绍下我的配置吧: Microsoft DirectX 9.0 SDK + Microsoft Visual Stiduo 2005 我的Microsoft DirectX 9.0 SDK

Rachel Zhang的专栏 5065

DirectX SDK April 2005 在旧版本的VC6中可能造成编译问题

使用 DirectInput  的  IDirectInputDevice8::SetDataFormat  可能无法正常编译。dinput8.lib(dilib2.obj) : fatal error LNK1103: debugging information corrupt; recompile module去掉使用它的那句话就没有问题了。原因在于使用了新版的DIrextX SDK (Apr

dknt的专栏 2928

[DirectShow] vmr-9(Video Mixing Renderer 9) Filter (视频混合渲染处理器9 filter)

由此翻译纯属自己的笔记及练习一下英语阅读。翻译错和翻译得极烂的地方要是我今后水平得到提到的话会来修改修改的。 翻译源:http://msdn.microsoft.com/en-us/library/windows/desktop/dd407344(v=vs.85).aspx(Video Mixing Renderer Filter 9)     1 VMR-9 VMR-9即Video

记一忘三二 5476
上一篇: _splitpath函数得到文件的目录名和路径
下一篇: vc2005 串口通信
dkbrain
博客等级 码龄18年 7粉丝 4原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值