vc中关于 directx的配置,和dxsdk_extras(directshow)

2009-11-10 0:28

此文章:自己编写 转载于《汤姆&杰瑞

DirectShow 1 —— 下载与VC配置

1 DirectX SDK9

Directshow sdk 下载网址 :
http://download.microsoft.com/download/d/9/1/d91c44b9-fbac-4e8e-bee1-4a75777923ec/dxsdk_feb2005_extras.exe

在运行DirectShow例子时必须先用设置Visual C++编辑环境,要不然交会发生连接错误或者是找不到定义等等众多错误。设置直要是指定编绎器去查找程序所引用的头文件,库文件或者是资源文件的所在文件夹的路径


设置步骤:菜单栏中的工具->选项->项目和解决方案->Vc++目录,然后就要以在右边的下拉框中选择可执行文件,头文件,库文件等待,这样就可以设置其所在文件的路径了。

所包含的文件可能放在:

1.DirctX 安装所在文件夹中的:Lib和Include文件夹中;

2.Platform 安装所在文件夹中的:Lib,Include,Samples\Multimedia\DirectShow\BaseClass,和Samples\Multimedia\DirectShow\Common文件中。

怎么确定项目所需要那些文件:
在SDK中查找编译出错,提示没有定义的成员的帮助,看看它所需要那些头文件和库文件,就可以用#include 与#pragma comment 把它们引用代码文件中如
#include <dshow.h>
#pragma comment(lib, "ole32.lib" )

如里它所提供的例子没有存在VC++解决方案,而自己新建空解决方案把所提供的源文件添加进行,运行起来可能会遇到很多难以想像的问题,因为它们NMAKE命令去生成项目。在生成过程中,它们文件这间有编译的前后顺序,而且有些文件要依懒于前一个编译生成的文件,所以要设置项目属性是很复杂的,设置的不好很容易出现各各样的编译错误。但你可以在在命令行中转到项目所有文件夹,运行命令:nmake /n ,查看生成项目所运行的命令。然后根据命令的信息而去设置新建项目的属性。你要正确去配置项目的属性,就必须了解这个命令nmake,CL.EXE,LINK.EXE,,RC.EXE;下面给出一些参考。

NMAKE命令选项参考
Microsoft 程序维护实用工具 (NMAKE.EXE) 是一个 32 位,基于说明文件中包含的命令生成项目的工具。
http://msdn.microsoft.com/library/c...ake_options.asp


CL.exe 选项说明
CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。

http://msdn.microsoft.com/library/c...habetically.asp

link命令选项参考:
LINK 是将通用对象文件格式 (COFF) 对象文件和库链接起来以创建 32 位可执行 (.exe) 文件或动态链接库 (DLL) 的 32 位工具

http://msdn.microsoft.com/library/c...r_reference.asp

CL.EXE 与link的关系
http://msdn.microsoft.com/library/c...ink_options.asp

RC命令
Microsoft Windows 资源编译命令,没有找到相关的资料,只在命令行在输入RC /? 查看它自带的帮助了。

命令行中生成DirectShow SDK 中的例子
http://www.cnblogs.com/xuanfeng/arc.../04/494236.html

2 DirectX SDK8.1

(假设DirectX SDK8.1安装在C:\DXSDK目录下。)
1. 编译基类源代码,至少生成两个静态库文件
打开C:\ DXSDK\samples\Multimedia\DirectShow\BaseClasses\baseclasses.dsw,Debug版本生成strmbasd.lib,Release版本生成strmbase.lib。

2. 配置VC的编译环境:Include目录和Lib目录。执行VC的菜单命令Tools | Options…,在随后弹出的对话框中进入Directories一页,在Show directories for一项选择Include files,然后配置如下:(注意,务必将DirectX SDK的目录放在标准的VC目录之前。)
C:\DXSDK\Include
C:\ DXSDK\samples\Multimedia\DirectShow\BaseClasses
C:\ DXSDK\samples\Multimedia\Common\include
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
再在Show directories for一项选择Library files,配置如下:
C:\DXSDK\Lib
C:\ DXSDK\samples\Multimedia\DirectShow\BaseClasses \DEBUG
C:\ DXSDK\samples\Multimedia\DirectShow\BaseClasses \RELEASE
C:\PROGRAM FILES\MICROSOFT SDK\LIB
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB

3. 配置DirectShow应用程序开发项目需要连接的库文件。
执行VC的菜单命令Project | Settings…,在随后弹出的对话框中进入Link一页,在Object/library modules一项,Debug版输入Strmbasd.lib Msvcrtd.lib Winmm.lib,Release版本输入Strmbase.lib Msvcrt.lib Winmm.lib。Ignore default libraries. (In Microsoft® Visual C++® 6.0, choose Settings from the Project menu. Click the Link tab and check Ignore all default libraries.)

4. 如果安装的DirectX SDK的版本是9.0以前的,请确认在编译应用程序的Debug版本之前已经定义了DEBUG宏。执行VC的菜单命令Project | Settings…,在随后弹出的对话框中进入C/C++一页,在Category一项选择Preprocessor,然后确认Preprocessor definitions中有DEBUG(如果没有就自己加上)。
另外,应用程序在调用任何COM库函数之前,务必调用CoInitialize或CoInitializeEx进行COM库的初始化(一般只需在程序启动的时候调用一次);在结束所有COM操作之后,调用CoUninitialize进行反初始化(一般在程序退出之前调用一次)。而当程序中有多个线程都要使用COM库函数时,则每个线程都要进行初始化和反初始化。总之,要保证CoUninitialize和CoInitialize(或CoInitializeEx)调用的一一配对。





关于DirectShow SDK 和Windows SDK,及DirectX SDK

本文描述了DirectShow SDK ,Windows SDK,DirectX SDK ,VS200?之间的关系
      VS2002中包含有Windows SDK 2002版(支持Windows XP及其以前的Windows 并包含有DirctX 8.1 SDK(包括DirectShow SDK)),这之后DirectX9 SDK不被包含在Windows SDK中.
       VS2003中包含有Windows SDK 2003版(支持Windows Server 2003及其以前的Windows)和DirectX 8.1 SDK(其中包括DirectShow8 SDK)
     DirectX 9.0C SDK 的第一个版本是DirectX SDK Summer 2004也是整合有DirectShow SDK 的最后一个版本,这之后面向DirectX 9.0C用C++开发应用程序没有发生太大变化,以后的版本主要是针对MDX做的改动,如果在VS2003下用C++开发DirectShow应用程序使用这个版本最合适.另外Windows XP SP2 中包含的DirectX 的版本就是9.0c ,这也是广泛使用的DirectX版本.Windows SDK 2004版,支持Windows XP SP2及其以前的Windows 但不包含DirectX SDK.
    之后 DirectShow  SDK 不被整合在DirectX SDK中而是以Extras 的形式发布.DirectShow SDK的最后一个版本是在2005.2版的DirectX SDK Extras中,这之后DirectShow SDK被整合在Windows SDK中 Windows SDK 2005版(支持Windows Server 2003 SP1 及其之前的Windows)中包含有DirectShow SDK,Windows SDK 2006年3月版(支持Windows Server 2003 R2及其之前的Windows)也包含.
    VS2005 中包含有Windows SDK 2005 版,但是没有DirectShow SDK,所以在VS2005中开发DirectShow 应用程序要手工安装DirectX SDK Extras 2005,2 版,和2005年6月之后的DirectX SDK,因为DirectShow 会调用DirectDraw,DirectSound等,DirectX SDK 从2005.6开始支持VS2005,我使用的是2005.8版,在这之后的DirectX SDK中,主要多加入了MDX 2 beta 而这个MDX 2 beta在2006.10中取消了,而被一个叫做XNAGS的东西取代了.
      Windows SDK for Vista  已经正式发布,DirectShow的示例被更新为VS2005版本,DirectShow 的换代产品是Media Foundation,它将取代DirectShow 就象当年DirectShow 取代 Video for Windows 一样.
晕了

DirectX SDK下载页
http://www.microsoft.com/downloads/Browse.aspx?displaylang=en&categoryid=2

DirectX SDK Summer 2004 版 下载地址
http://www.microsoft.com/downloads/details.aspx?FamilyID=fd044a42-9912-42a3-9a9e-d857199f888e&DisplayLang=en

DirectX SDK Extras2005,2 版 下载地址
http://www.microsoft.com/downloads/details.aspx?FamilyID=8af0afa9-1383-44b4-bc8b-7d6315212323&DisplayLang=en

Windows SDK 2006.3 版 for Windows Server 2003 R2 下载地址
http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&displaylang=en
这个版本的好处是不含有.net SDK 一张CD-R可以刻下

Windows SDK for Vista 下载地址
http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=7614fe22-8a64-4dfb-aa0c-db53035f40a0&DisplayLang=en
包含有.net 3 SDK,没有完整的DirectX SDK



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值