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命令去生成项目。在生成过程中,它们文件这间有编译的前后顺序,并且有些文件要依懒于前一个编译生成的文件,所以要设置项目属性是非常复杂的,设置的不好非常easy出现各各样的编译错误。但你能够在在命令行中转到项目全部目录。执行命令: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)。



url=/library/CHS/vccore/html/vcrefcompileroptionslistedalphabetically.asp" target="_blank">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)通话一对。

vc有关 directx组态,和dxsdk_extras(directshow)的更多相关文章

  1. DirectShow

    1 最简单的DirectShow应用程序 — 播放视频 1.简介DirectShow是DirectX中的一套处理媒体播放.音视频采集的开发包,在DirectX SDK Summer 2004(Dire ...

  2. DirectX SDK版本与Visual Studio版本

    对于刚刚接触 DirectShow 的人来说,安装配置是一个令人头疼的问题,经常出现的情况是最基本的 baseclass 就无法编译.一开始我也为此费了很大的功夫,比如说修改代码.修改编译选项使其编译 ...

  3. VS2010 C++学习(5):基于DirectShow的视频预览录像程序

    VS2010 C++学习(5):基于DirectShow的视频 预览录像程序 学习VC++编制的基于DirectShow视频捕获程序,主要练习基于DirectShow程序的应用. 一.         ...

  4. DirectShow Filter的开发实践

    一.介绍 摄像头图像采集处理在业界有着多种成熟的方案.从老的DirectShow.Grabber技术,到新的Windows Media Foundation框架,网络上都有着丰富的参考资料.OpenC ...

  5. DirectShow 应用开发过程

    本文准备总结一些 Direct Show 常用的API接口函数,方便以后查询回忆.如果这里没有你想了解的函数,你可以自行搜索MSDN + 函数名去 MSDN 查找你想要了解的函数,也可以查看百度百科相 ...

  6. DirectShow 简介

    一.DirectShow 简介 DirectShow(简称 DShow) 是一个 Windows 平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能.它支持多种多样的媒体文件格式,包括 ASF. ...

  7. error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA)(转)

    原文转自:http://blog.sina.com.cn/s/blog_639a2ad70101kpen.html 编译directshow若干问题的解决 1.安装好windows sdk,进入dir ...

  8. Java泛型Restletclient

    写一个与restletserver通信的client类.用于測试通信是否成功.而且进行交互.为了方便其它人使用.于是,写一个通用的方法封装起来,但是中途却放生了一些问题. 依照正常写法,顺序走下来是这 ...

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

      2009-11-10 0:28 此文章:自己编写 转载于<汤姆&杰瑞> DirectShow 1 -- 下载与VC配置 1 DirectX SDK9 Directshow sd ...

随机推荐

  1. [Angular] Alternative Themes - Learn the Host-Context Selector

    To add alernative theme, we can use :host-context() selector from Angular. //au-fa-input-red-theme.c ...

  2. Python 奇葩语法

    a = 1, 2, 3 赋值后的结果,a == (1, 2, 3),将一个元组(tuple)赋给了变量 a (1, 2) + (3, ) ⇒ (1, 2, 3),并不能说明 tuple 可以添加新的元 ...

  3. js进阶 11-21 纯css实现选项卡

    js进阶 11-21 纯css实现选项卡 一.总结 一句话总结:核心原理,a标签的锚点效果+父div限宽+多的部分隐藏. 1.如何实现a标签的锚点效果? href属性找到对应的位置就好,和选择器一样, ...

  4. js进阶 11-20 弹出层如何制作

    js进阶 11-20 弹出层如何制作 一.总结 一句话总结:其实就是一个div,控制显示和隐藏即可.设置成绝对定位更好,就可以控制弹出层出现的位置.关闭的画质需要将display重新设置为none就好 ...

  5. [内核编程] 键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试

    键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试 完整源代码 /// /// @file ctrl2cap.c /// @author wowocock /// @date 2009-1 ...

  6. dmalloc在嵌入式的开发板上的应用

    下面是我实际在开发环境里面做的dmalloc移植时候的一些随笔 配置PC的dmalloc环境1. 首先把源码包打开,进入dmalloc文件夹2. ./configure 配置Makefile,我是加了 ...

  7. [SCSS] Reuse Styles with the SCSS @extend Directive

    We can write reusable styles with the SCSS @extend or @mixin directives. Which one is better? It dep ...

  8. [NPM] Create a node script to replace a complex npm script

    In this lesson we will look at pulling out complex npm script logic into an external JavaScript file ...

  9. html常用样式margin、border怎么使用

    html常用样式margin.border怎么使用 一.总结 一句话总结:1.margin:auto配合width才能居中:2.border的三个属性依次是边框宽度,边框样式,边框颜色 1.html中 ...

  10. 版本控制— SVN & git

    版本控制—— SVN & GIT 提问 什么是版本控制? 是能够一直监视代码文件的变更,并存储这些文件以便将来引用的一种机制(软件) 为什么要使用版本控制? (1)记录哪个开发人员做了变更 ( ...