不得不说,使用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

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

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

    OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...

  2. OSG+VS2010+win7环境搭建 (转)

    OSG+VS2010+win7环境搭建 Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http:/ ...

  3. OSG+VS2010+win7环境搭建

    Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源代码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http://www.openscenegraph ...

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

    虽然出生的时候,没有说过“Hello World!”,但是自从走上了编程之路,每一次输出“Hello World!”的时候,都觉得好比中了彩票大奖似的: 仔细算算,从2012年暑假到现在,经历了3年半 ...

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

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...

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

    最近在做图像方面的开发,需要对软件开发平台进行配置,我查找了关于这些方面的内容,由于软件版本很多,每个人的开发平台又不一样所以在对平台进行搭建过程中遇到了很多问题,下面我将我搭建平台的流程做一个记录. ...

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

    解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 ...

  8. GDAL VS2010 win7(64位)安装、使用说明(图文解析)

    一.电脑配置及安装版本 Win 7(64位机) Visual Studio 2010 GDAL 1.9.2(我也尝试了最新版GDAL1.11.0,应该同样可以用的,只是在重新配置时又选用了老一点的版本 ...

  9. 我的复杂的OpenCV编译之路(OpenCV3.1.0 + VS2010 + Win7)

    教程:www.cnblogs.com/jliangqiu2016/p/5597501.html 这里主要记载我编译遇到的错误及解决方法. OpenCV3.1软件下载:https://sourcefor ...

随机推荐

  1. Unity学习疑问记录之坐标体系

    [Unity3D的四种坐标系] 1.World Space(世界坐标):我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的.transform.position可以获得该位置坐标. ...

  2. SQL Server通过File Header Page来进行Crash Recovery

    SQL Server通过File Header Page来进行Crash Recovery 看了盖总的一篇文章 http://www.eygle.com/archives/2008/11/oracle ...

  3. ASP.NET Aries 开源开发框架:开发指南(一)

    前言: 上周开源了Aries开发框架后,好多朋友都Download了源码,在运行过程里,有一些共性的问题会问到. 所以本篇打算写一下简单的开发指南,照顾一下不是太看的懂源码的同学,同时也会讲解一下框架 ...

  4. 持续集成及部署利器:Go

    Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发.(不要和Google的编程语言Go混淆了!)其前身为CruiseControl,是ThoughtWorks在做咨询和交付交付项目 ...

  5. 通过一组RESTful API暴露CQRS系统功能

    命令和查询责任分离(CQRS)是由Greg Young提出的一种将系统的读(查询).写(命令)操作分离为两种独立子系统的架构模式.命令通常是异步执行的,并存储在一个事务型数据库中,而读操作则通常是最终 ...

  6. 走向面试之数据库基础:一、你必知必会的SQL语句练习-Part 1

    本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已.另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥. 一.三点一 ...

  7. Entity Framework Core 1.1 Preview 1 简介

    实体框架核心(EF Core)是Entity Framework的一个轻量级,可扩展和跨平台版本. 10月25日,Entity Framework Core 1.1 Preview 1发布了. 升级到 ...

  8. SQL Server 日期函数:EOMonth、DateFormat、Format、DatePart、DateName

    一,月份的最后一天 函数 EOMonth 返回指定日期的最后一天 EOMONTH ( start_date [, month_to_add ] ) 1,对于start_date 有两种输入方式,能够转 ...

  9. Unity基础知识学习笔记一

      1,Unity 4.5.4这个版本,在打包ios应用程序的时候.会生成一个xcode工程,但是这个工程无法在xcode6上变异,无法生成ios8上发布.所以unity在ios8发布3天内就发了4. ...

  10. 【开源】OSharp框架解说系列(2.2):EasyUI复杂布局及数据操作

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...