DirectShow+VS2010+Win7配置说明

不得不说,使用windows的东西确实很麻烦,DirectShow这个东西不断更新换代,书本上的知识完全跟不上时代,只能去博客上查资料。百度之后,看了大量的文章,终于完成了自己的DirectShow安装,配置是Win7+VS2010+Windows SDK 7.1+VS2010SP1(补丁)+VC-Compiler-KB2519277。使用VS2012的同志们要注意了,可能配置的方法会很不一样,因为据说VS2012集成了Windows SDK,不知道DirectShow又没有被集成在里面,待我研究一下再发一篇详细说明。
理论上,安装顺序如各路博主所说(顺便附上下载地址):

(1)visual studio 2010 ( http://pan.baidu.com/s/1o65pOBg  密码:  pzpw)
(2)Windows sdk 7.1  (http://www.microsoft.com/en-us/download/details.aspx?id=8279
(3)Visual studio 2010 sp1 (看博文 http://blog.csdn.net/feidewu/article/details/8105890
(4)VC-Compiler-KB2519277.exe (http://www.microsoft.com/zh-cn/download/details.aspx?id=4422

但是里面有很多的细节需要注意,本文中我会以大量图片详细展示安装过程,希望能对大家有所帮助。

先讲了一下自己刚开始安装失败的经历,以供大家借鉴。

电脑上早已经装好了VS2010,这个的安装就不多说,基本就是狂点下一步。然后我下载了Windows SDK 7.1,解压,点击Setup安装,安装很快结束了,并没有提示报错,但这时候去到安装目录下C:\Program Files\Microsoft SDKs\Windows\并没有发现v7.1这个文件夹,说明并未安装成功。百度了一下,发现需要把NetFramework4.0以上的版本卸载掉,于是打开控制面板,发现电脑里装的是NetFramework4.5,于是把所有带NetFramework4.5字样的软件全卸了,包括语言包什么的。

原因可能是SDK 7.1会安装NetFramework4.0到电脑上,因此要是发现电脑上有比4.0还高的版本,肯定就中止安装了。这和后面安装VS2010sp1要先卸载比Microsoft Visual C++ 2010 x86(x64) Redistributable - 10.0.30319 更高的版本原理是一样的。
卸载之后我又装了一遍SDK,这次倒是装上了,发现VS2010却打不开。然而我又不屈不挠的装了VS2010sp1(补丁),结果出错了。

仔细看攻略,原来SDK安装时不能勾选VC_compiler选项,第一次装的SDK的时候肯定是把这个选项勾上了(默认是打勾的)。为了防止再出什么意外,我直接卸载了VS2010和SDK,从头开始。

1、从头开始  Window SDK 7.1

按照博主们提供的步骤,从头开始,先安装VS2010,装完特意去控制面板看了一下,此时已经是NetFramework4.0,看来是VS2010自带的。接下来就可以放心得安装Windows SDK7.1,只是安装时注意不要勾选VC_compiler。装完去安装目录下看一眼,已经有了7.1这个文件夹,说明装好了。

SDK安装过程附图如下:

首先检测已安装的组建

下面这步最重要,一定记得把Visual C++ Compilers 这项的勾去掉

2、VS2010SP1
然后安装VS2010SP1,这虽然只是VS2010的一个补丁,却也有1.5G,最好安装离线版,因为在线安装非常容易中断。安装之前要先卸载掉比Microsoft Visual C++ 2010 x86(x64) Redistributable - 10.0.30319更高的版本(不用卸这个版本),比如11.0.XXXXX等。下图中这个10.0.40219就得卸载掉,后面这个VS2012的补丁最好也卸载掉吧(没在下图这台电脑上试验过,不过如果没装VS2012的话还是卸载掉好)


安装过程比较耗时,几乎和安装VS2010一样慢。

3、VC-Compiler

装完SP1补丁后,还剩最后一步,安装VC编译器,这步没什么好说的,狂点下一步就好了。

4、编译BaseClasses项目

安装完后,需要编译BaseClasses项目,目录为---C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow。《Visual C++音频视频技术开发与实战》一书(后文简称《实战》)中以给出的目录是show\Samples\C++\DirectShow\BaseClasses,因为当时的DirectShow还集成在DirectX里面,而现在是集成在Windows SDK里,以后随着版本不同还可能改变,微软就是这么坑,然而万变不离其宗,大家耐心寻找应该能找到。
找到之后打开sln后缀的项目文件,用VS2010打开,会提示项目版本太低需要转换,按照步骤点下一步转换即可。

然后在VisualStutio里生成解决方案(F7),由于《实战》中用的DirectShow版本较低(VS2005),因此在VS2010中编译时会出现各种错误,作者也给出了详细解答(解决VS里各种莫名其妙的编译错误确实很费脑子)。幸运的是,本文中使用的Windows SDK7.1兼容性还是蛮好,编译一次通过。

为了在项目中使用编译生成的库文件,我们需要在四种模式(Debug,Debug_MBCS,Release,Release_MBCS)下分别编译此工程,可以得到四个类型的strmbasd.lib分别在BaseClasses的相应目录下。

5、添加包含目录、库目录和附加依赖项

编译成功之后需要在项目属性中设置包含路径(Include)和库文件(lib)的路径,新建或打开一个项目,设置项目的通用属性。在属性管理器中选择Debug或Release模式中的Microsoft.Cpp.Win32.user,修改通用属性->C++目录->包含目录,添加以下包含路径(注意顺序不能错,否则会报错)

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\common

C:\Program Files\Microsoft SDKs\Windows\v7.1\Include

C:\Program Files\Microsoft Visual Studio 10.0\VC\include

注意以上路径可能随程序的安装路径而变化,笔者是把所有软件都装在了C:\Program Files下。

库目录中添加刚刚编译生成的BaseClasses库的lib文件的目录:

C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug_MBCS

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release_MBCS

C:\Program Files\Microsoft Visual Studio 10.0\VC\lib

最后一步是设置通用属性->链接器->输入->依赖附件项,  添加:strmbasd.lib; winmm.lib; msvcrtd.lib; 其他博主们说在windows系统下要用分号隔开,但是我把他们分开放在了三行,也没有问题,可能是放在同一行的话需要分号隔开吧。

配置完成

需要说明的是,在User属性中完成了上述配置,之后再建立新的项目都会继承这些属性,不用重复配置,非常方便。下面就可以开始建立项目体验DirectShow了。

下一篇,如何使用于世祺老师的CameraDS类

参考文献:

http://blog.csdn.net/lzkit/article/details/18501637

http://jingyan.baidu.com/article/546ae1856161cf1149f28c95.html

http://blog.sina.com.cn/s/blog_7291f6ad0102v1yc.html

http://zhidao.baidu.com/link?url=9LkfygpBo6h6ug55ju-uYxQaW2qq2XVBra8Gck2GqC8LEyMniNfxUsbbayvEze9EHqpq0BwJHIuq3f6o3Cwx3iW21kl-0_EIIEvVQJIFb6G

时间: 2024-10-13 07:24:21

DirectShow+VS2010+Win7配置说明的相关文章

OSG+VS2010+win7环境搭建---OsgEarth编译

OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-

OSG+VS2010+win7环境搭建

Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip b) Osg第三方库 3rdParty_VC10_x86_x64.zip http://members.iinet.net.au/~bch

【OSG学习笔记之一:】OSG+VS2010+win7 64位环境搭建

虽然出生的时候,没有说过“Hello World!”,但是自从走上了编程之路,每一次输出“Hello World!”的时候,都觉得好比中了彩票大奖似的: 仔细算算,从2012年暑假到现在,经历了3年半的光阴,这段时间,不仅是知识.阅历.成长获得最大的一段,也是人生的一大转折点.在这期间,得以继续深造学习自己的专业,虽然踏入这行的时候,也是调剂来的,但是我用这3年的时间,恶补自己7年的不足:2015年,发生了三件大事,我毕业了,我工作了,我有女票了(三件事的重要程度递增):吃得苦中苦,方位人上人,

opencv 2.4.9+pcl 1.6+vs2010+win7 32开发环境配置

最近在做图像方面的开发,需要对软件开发平台进行配置,我查找了关于这些方面的内容,由于软件版本很多,每个人的开发平台又不一样所以在对平台进行搭建过程中遇到了很多问题,下面我将我搭建平台的流程做一个记录.在这个过程中我参考了两篇比较好的博客: 浅墨关于opencv开发环境的搭建:http://blog.csdn.net/poem_qianmo/article/details/19809337 邹宇华关于pcl中openni的使用:http://blog.csdn.net/chenyusiyuan/a

Matlab + VS | Matlab2014a + VS2010 Win7 混编调试

Matlab在处理矩阵运算等数学类操作时很方便,但是在循环处理上效率相较VS低了很多,所以经常会用到mex对Matlab的.m混编C文件,调用C函数,提高代码运行效率.以上是我的一点粗浅的理解,欢迎大家补充. 要进行Matlab和C混编,首先需要安装Matlab和VS或VC(Windows系统).我软件的版本是Matlab2014a和VS2010,只要可以互相兼容调用,编译器的版本倒不是区别很大. 下面介绍一个Matlab通过Mex混编C的简单例子.代码主要功能是输入数组b和整数a,输出数组c的

VS2010 win7 64位安装后新建项目生成时错误:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次. 在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为: 第一步:与上相同. 第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”

VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序

https://www.cnblogs.com/rainbowzc/p/4689009.html 下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们 所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当

阅读记录(2016年12月)

本文记录本人曾经阅读过的一些文章,其中主要包括在编程.学习过程中搜集的一些琐碎知识点等. 由于文章过多,此处只记录文章的地址,可点击查看原网页. 由于内容很多,放在一篇文章中显得太长,故每个月一篇. 2016-12-30 C++内嵌第三方EXE程序窗口 C++内嵌第三方EXE程序窗口 - 笨师兄 - 博客频道 - CSDN.NET VC可执行程序中打开另一个可执行程序并将其嵌入到主程序中-CSDN论坛-CSDN.NET-中国最大的IT技术社区 QT怎么把别的exe程序嵌入到自己的窗口中-CSDN

配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法

今天遇到了这个问题, 电脑系统:vs2010 win7系统 iis7 我运行在iis中配置的那个网站后,报错:错误代码 0x800700b7 配置错误定义了重复的"system.web.extensions/scripting/scriptResourceHandler"节 这个问题原因在于window7的IIS默认用的是ASP.NET v4.0应用程序池. 解决方法:把这个网站的应用程序池的.netframework版本改为 v2.0的,如图: 1:选中应用程序池-->在右侧右