需要安装的软件
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,坏处是还是错误不断,看来还是以如上搭配最为合适