vs2010 配置DirectShow


DirectShow SDK下载

http://www.microsoft.com/en-us/download/details.aspx?id=8442


win 7 skd 安装步骤


因为最近要用到Directshow SDK,又不想再安装其它VS版本,所以直接下了Windows SDK 7.1,下面介绍安装步骤。

 

首先说明一下我的安装环境,

系统:Windows 7 SP1

IDE:Visual Studio 2010 SP1(以下简称VS2010SP1)

 

其次,在安装之前要先下载Windows SDK 7.1的离线版,和KB2519277安装包。还有一点很重要,就是在安装VS2010SP1时还自动安装了 Microsoft Visual C++ 2010 x86 Redistributable - 10.0.30319 及更高版本,一定要先卸载比 Microsoft Visual C++ 2010 x86 Redistributable - 10.0.30319 更高的版本(不包括Microsoft Visual C++ 2010 x86 Redistributable - 10.0.30319 )。

 

再次,现在终于可以开始安装Windows SDK 7.1了,注意在安装时不要选择安装 VC-Compiler,其它选项默认即可。

 

最后,安装我们事先下载好的 VC-Compiler-KB2519277 安装包,到此完成安装。

 

---------------------------------------分割线----------------------------------------

 

对于一些步骤的说明:

 

1. 卸载比 Microsoft Visual C++ 2010 x86 Redistributable - 10.0.30319 更高的版本的原因:

Windows SDK 7.1不支持Microsoft Visual C++ 2010 x86 Redistributable - 10.0.30319 以上版本。

 

2. 安装Windows SDK 7.1时不直接选择安装 VC-Compiler 的原因:

在安装VS2010的SP1补丁时,VC-Compiler就出现了安装问题,没有解决,直接安装VC-Compiler会出错。所以跳过VC-Compiler的安装,待安装完Windows SDK 7.1后再用KB2519277安装包补上。


vs2010 项目属性配置


vs2010使用方案管理项目,一个解决方案下可包含多个项目。

默认情况下,项目属性的设置的目录起点为项目配置文件所在的位置,实际上就是项目头文件和源文件所在的位置。

vs2010中默认建立C++项目,则解决方案总目录下包含一个sln和一个项目文件夹,在vs2010编译器中生成debug和release解决方案后,总目录下还会生成对应的debug和release目录,存放最终生成的exe或dll文件,同时也会在项目文件夹下生成debug和release目录(存放的是中间编译文件obj)。

下面结合例子讲一下:solution为创建的解决方案,demo为创建的项目

解决方案solution总目录如下:


项目demo目录如下:

 

项目配置及系统变量关系:

在vs2010的项目属性页,会有一些系统变量,如下:

SolutionDir:解决方案目录

Configuration:指debug或release

ProjectName:项目名字

OutDir:在 常规--输出目录 中定义的值,如$(SolutionDir)$(Configuration)\,表示XXX\lolution\debug\目录值

IntDir:中间目录

TargetDir:生成exe或dll文件所在位置,如链接器-常规-输出文件为$(OutDir)$(TargetName)$(TargetExt)(即定义了exe输出位置,也就决定了TargetDit的值),此时TargetDir表示在XXX\lolution\debug\

TargetName:目标输出名,不包括扩展名

TargetPath:目标输出文件的全路径名

ProjectDir:表示项目目录值,一般在“调试-工作目录”中设置该值

TargetExt:扩展名

PlatformToolsetVersion:

ConfigurationName:配置名字,通常是Debug或者Release

默认情况下“输出目录”和“输出文件”对应的目录值是一样的。

 

配置属性

             常规

                      输出目录:$(SolutionDir)$(Configuration)\

                      中间目录:$(Configuration)\

                      目标文件名:$(ProjectName)

                      目标文件扩展名:.exe

                      生成日志文件:$(IntDir)\$(MSBuildProjectName).log

            调试

                     命令:$(TargetPath),表示调试器要启动的exe全名,TargetPath就表示目标输出文件的全路径名,所以一般情况下它代表的值就等于“输出文件”属性代表的值

                     工作目录:$(ProjectDir)

C/C++

          预编译头

                    预编译头输出文件:$(IntDir)$(TargetName).pch

          输出文件

                    ASM列表位置:$(IntDir)

                    对象文件名:$(IntDir)

                    程序数据库文件名:$(IntDir)vc$(PlatformToolsetVersion).pdb

          浏览信息

                    浏览信息文件:$(IntDir)

链接器

          常规

                    输出文件:$(OutDir)$(TargetName)$(TargetExt)

         清单文件

                   清单文件:$(IntDir)$(TargetName)$(TargetExt).intermediate.manifest

         调试

                  生成程序数据库文件:$(TargetDir)$(TargetName).pdb

         优化:

                  按配置优化数据库:$(TargetDir)$(TargetName).pgd


配置DirectShow项目属性


下载后可用UltraISO将GRMSDK_EN_DVD.iso的内容提取出来,放到一个文件夹中,就可以直接运行setup进行安装了,而不需刻碟后再用光盘安装。Windows SDK默认被安装到C:\Program Files\Microsoft SDKs\Windows\v7.1目录中。

 

    为了利用DirectShow的基类开发应用程序,必须先编译其BaseClasses项目,一般都要生成两个版本的基类库,一个是Debug版,另外一个是Release版,分别用于调试期间和最后发布。

 

    下面以生成Debug版本为例(生成Release版本与此相类似),用VS2010打开C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses下面的baseclasses项目文件,这时如果直接生成BaseClasses就会报错,必须先配置好VS2010的通用属性\ VC++目录\ 包含目录和库目录。点选属性管理器视图,点选Debug|Win32,打开Debug属性页中的通用属性的各个子项,选取VC++目录,然后编辑包含目录和库目录。


32位Win7平台VS2010的directshow开发环境配置

包含目录包括:

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

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

 

库目录包括:

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

 

    配置好VC++目录后,在菜单中点选生成\配置管理器,在配置项中选取Debug。关闭配置管理器页面后,再点选生成\生成BaseClasses,就可以顺利生成Debug版本的基类了,基类的库文件 strmbasd.lib  在   C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug目录中。

    与此相类似,Release版本的库文件 strmbase.lib 则在 Relesas 目录中。

 

    在需要用DirectShow的基类开发应用程序的项目中,还有把基类的头文件和库文件所在的目录添加到应用程序项目的VC++目录中(注意先后次序,否则可能报错):

 

    包含目录包括:

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\Microsoft SDKs\Windows\v7.1\Lib

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

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

 

    以上是针对当前项目配置包含目录和库目录。如果针对VS2010配置默认的包含目录和库目录,则不要在点选
Debug|Win32后马上打开属性页,而是要点选Debug|Win32的子项 Microsoft.Cpp.Win32.user 后再打开属性页,然后按照上面的方法配置目录。这样,其他项目可以通过  从父级或项目默认设置继承就可以了。

32位Win7平台VS2010的directshow开发环境配置

 

    另外,还需要在  项目属性\配置属性\链接器\输入  之中的  依赖附件项  中加入:strmbasd.lib; winmm.lib; msvcrtd.lib (VC6用空格隔开就行了,VS2010一定要用 ;隔开几个项)等库文件,否则会出现一大堆错误:

 

1>Dialog1.obj : error LNK2001: 无法解析的外部符号 _CLSID_FilterGraph
1>Dialog1.obj : error LNK2001: 无法解析的外部符号 _IID_IGraphBuilder
  ...........

error LNK2019: 无法解析的外部符号 __imp__timeGetTime@0,该符号在函数 "public: int __thiscall CAMMsgEvent::WaitMsg(unsigned long)" (?WaitMsg@CAMMsgEvent@@QAEHK@Z) 中被引用

  ...........

 

 

 

    学习Directshow自带的 AmCap 例子可以尽快提高DirectShow的编程水平,为此将本人对该例子的理解写出来,希望对爱好者有所帮助。


fatal error C1083: 无法打开包括文件:“qedit.h”: No such file or directory


VS2010编译 DirectShow一些项目时遇到 错误:fatal error C1083: 无法打开包括文件:“qedit.h”: No such file or directory

解决方法:

从网上下载一个 qedit.h 的头文件,或者从 vs08 安装的目录下弄一个也行。

然后拷贝下载的 qedit.h 文件到目录 C:\Program Files\Microsoft SDKs\Windows\v7.1\Include 下;

然后在之前编译出错的项目的 "stdafx.h" 的文件中头部加上:

#pragma include_alias( "dxtrans.h", "qedit.h" )
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__
#include "Qedit.h"

就ok了~~~

备注:vs2010需要项目属性需要配置 DirectShow 开发环境,具体配置参考网络。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值