• DirectShow 1 —— 下载与VC配置


    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,SamplesMultimediaDirectShowBaseClass,和SamplesMultimediaDirectShowCommon文件中。

    怎么确定项目所需要那些文件:
    在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: DXSDKsamplesMultimediaDirectShowBaseClassesaseclasses.dsw,Debug版本生成strmbasd.lib,Release版本生成strmbase.lib。

    2. 配置VC的编译环境:Include目录和Lib目录。执行VC的菜单命令Tools | Options…,在随后弹出的对话框中进入Directories一页,在Show directories for一项选择Include files,然后配置如下:(注意,务必将DirectX SDK的目录放在标准的VC目录之前。)
    C:DXSDKInclude
    C: DXSDKsamplesMultimediaDirectShowBaseClasses
    C: DXSDKsamplesMultimediaCommoninclude
    C:Program FilesMicrosoft Visual StudioVC98INCLUDE
    C:Program FilesMicrosoft Visual StudioVC98MFCINCLUDE
    C:Program FilesMicrosoft Visual StudioVC98ATLINCLUDE
    再在Show directories for一项选择Library files,配置如下:
    C:DXSDKLib
    C: DXSDKsamplesMultimediaDirectShowBaseClasses DEBUG
    C: DXSDKsamplesMultimediaDirectShowBaseClasses RELEASE
    C:PROGRAM FILESMICROSOFT SDKLIB
    C:Program FilesMicrosoft Visual StudioVC98LIB
    C:Program FilesMicrosoft Visual StudioVC98MFCLIB

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

  • 相关阅读:
    emacs 配置
    .Net微服务实践(五)[服务发现]:Consul介绍和环境搭建
    .Net微服务实践(四)[网关]:Ocelot限流熔断、缓存以及负载均衡
    .Net微服务实践(三)[网关]:Ocelot配置路由和请求聚合
    .Net微服务实践(二)[网关]:Ocelot介绍和快速开始
    .Net微服务实践(一)[框架]:微服务框架选型
    研发协同平台持续集成之Jenkins实践
    统一身份认证服务IdentityServer4实践
    DevOps平台架构演进
    ABP框架
  • 原文地址:https://www.cnblogs.com/alexanderzjh/p/3279188.html
Copyright © 2020-2023  润新知