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

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命令去生成项目。在生成过程中,它们文件这间有编译的前后顺序,并且有些文件要依懒于前一个编译生成的文件,所以要设置项目属性是非常复杂的,设置的不好非常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)。

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)调用的一一配对。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118084.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • csgo电脑人怎么控制(csgo守护模式)

    网吧以浓厚的电竞氛围,吸引了很多游戏玩家前去消费。但常去网吧的人会发现:玩穿越火线、英雄联盟、绝地求生甚至守望先锋的人都不在少数,却单单少了CSGO玩家的身影,这是为什么?随着前两年绝地求生的“吃鸡”热潮来袭,网吧早已升级了电脑配置,绝大多数游戏玩家都可流畅地进行自己喜欢的游戏,难道CSGO玩家如何不合群?让我们来熟悉一下进入网吧后的一系列操作就可以得到结论了!去网吧:穿越火线/英雄联盟/绝地求生…

    2022年4月12日
    223
  • 服务器系统监控工具,10款超实用的服务器监控工具和软件

    服务器系统监控工具,10款超实用的服务器监控工具和软件服务器监控软件和工具可以帮助我们从任何一个地方实时了解服务器的性能和功能。由于复杂的社交网络系统以及我们对于互联网的高度依赖,我们绝不允许那些宝贵的客户因自身系统停运而流失。选用实用的服务器工具和软件是一个明智的决定,能够同时为你带来短期效益和长期效益。下面是10款超实用的服务器监控工具和软件:1.SimpleServerMonitorSimpleServerMonitor是一款成本合理…

    2022年6月13日
    92
  • 原地算法矩阵置0_矩阵归一化处理

    原地算法矩阵置0_矩阵归一化处理给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:matrix

    2022年8月9日
    6
  • Map和Set的区别_list与set的区别

    Map和Set的区别_list与set的区别目录一、简述二、Map三、Set四、Set和Map区别一、简述Set和Map主要的应用场景在于数据重组和数据储存。Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构。集合(Set):ES6新增的一种新的数据结构,类似于数组,成员唯一(内部元素没有重复的值)。且使用键对数据排序即顺序存储。Set本身是一种构造函数,用来生成Set数据结构。Set对象允许你储存任何类型的唯一值,无论是原始值或者是对象引用。二、Ma…

    2025年9月24日
    4
  • python专业版激活成功教程_Python社区版和专业版的差距

    python专业版激活成功教程_Python社区版和专业版的差距PyCharm是一种PythonIDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。PyCharm最常用的两个版本就是社区版和专业版,这两个版本区别如下:专业版和社区版的区别除了这两版本之外,还有一个版本就是教育版,这三个有什么区别呢?1.收费不同首先就是三者的收费不同:专业版是收费的,另外两个是免费的。2.功能不同pyCharm专业版是功能最丰富的,与社区版相比,PYc…

    2022年8月29日
    3
  • python爬虫与数据可视化书(python大数据可视化)

    之前写过篇爬取前程无忧职位信息并保存到Excel的博客,这里仔细的讲讲并且增加可视化内容文章目录1.数据挖掘2.数据清洗3.数据可视化这里特别强调,pyecharts包千万别装新版的,我这里装的是0.5.9版的其次如果要做地理坐标图,热力图啥的,必须安装地图包,比如世界地图包,中国地图包,城市地图包啥的1.数据挖掘代码所需包#-*-coding:utf-8-*-importur…

    2022年4月13日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号