DirectShow编译过程(转载+修改)

需要安装的软件

1, Visual Studio 2005 Pro + MSDN.iso 安装到 C:\DEV\VS2005

2, Platform SDK 可以从微软官方网站下载,我下载的是 Windows Server 2003 R2 Platform SDK ISO.img,

   用虚拟光驱 daemon tools 安装到 C:\DEV\PSDK

3, DirectX SDK 也可以从微软官方网站下载,我下载的是 dxsdk_aug2007.exe,安装到 C:\DEV\dxsdk

修改 SetEnv.Cmd

用编辑器(比如记事本, ultraedit, 或者 Emacs)打开 C:\DEV\platformSDK\SetEnv.Cmd, 在第一行加上:

Set DXSDK_DIR=C:\DEV\DXSDK

注意,如果 directx sdk 的安装位置不同,要做相应的修改

编译 DirectShow 基类源代码,配置VS2005

1,开始菜单 Microsoft Visual Studio 2005/Visual Studio Tools/Visual Studio 2005 Command Prompt

   打开命令行窗口,也可以启动 cmd 窗口后自己运行vsvars32.bat

2,cd C:\DEV\PSDK

   SetEnv /XP32 /DEBUG

3,cd C:\DEV\PSDK\Samples\Multimedia\DirectShow

4,nmake

  然后去喝咖啡,如果编译顺利,我们就有了 debug 版的 strmbasd.lib

5,cd C:\DEV\pSDK

   SetEnv /XP32 /RETAIL

6,cd C:\DEV\PSDK\Samples\Multimedia\DirectShow

7,nmake

   再去喝咖啡,如果编译顺利,我们就有了 release 版的 strmbase.lib

8,启动 vs2005, 菜单 Tools/Options/Projects and Solutions/VC++ Directories 中

   include files 中加入

   C:\DEV\pSDK\Include

   C:\DEV\dxsdk\Include

   C:\DEV\PSDK\Samples\Multimedia\DirectShow\BaseClasses

   Library Files 中加入

   C:\DEV\pSDK\lib

   C:\DEV\dxsdk\lib

   C:\DEV\PSDK\Samples\Multimedia\DirectShow\BaseClasses\XP32_RETAIL

   C:\DEV\PSDK\Samples\Multimedia\DirectShow\BaseClasses\XP32_DEBUG

9, 新建工程以后,菜单 Project/Properties 在对话框中找到 Linker/Input

   为Debug configuration 添加 strmbasd.lib, winmm.lib

   为Release configuration 添加strmbase.lib, winmm.lib

注意:

版本要完全正确,安装PSDK选择安装环境变量

一定要把加入的includefiles和lib路径放到最上面,之后才是vc原来的路径,否则还是会出错

ps:关于directshow例子的编译:

用vs2005的新建\从现有代码创建创建工程,然后看makefile文件里的lib文件列表,一起加入项目属性\链接\输入\附加依赖项

在代码前加入

#ifndef _WIN32_WINNT

#define _WIN32_WINNT 0x0400           //使用CoInitializeEx

#endif

(CoInitializeEx是winnt的,win2k中只有CoInitialize)

总结:dxsdk版本很多,dshow的变动更大,从dxsdk转移到了platformsdk,platformsdk又改成了windowssdk,有人推荐vistasdk,好处是里面dshow例程都是vs2005和2008的了,不像server 2k3 platformsdk还有一makefile,坏处是还是错误不断,看来还是以如上搭配最为合适

原文地址:https://www.cnblogs.com/sdqxcxh/p/1798993.html