vs2008下DShow开发环境配置
[转载请注明原始出处: http://write.blog.csdn.net/postedit/8704102]
最近有些流媒体相关的项目,突击了一下陆其明的两部大作,并推荐原MS DShow架构师Geraint Davies所在网址:http://www.gdcl.co.uk
通过google及自己的摸索,发现在vc8.0及更高版本下编译DShow应用、SDK工程或者开发Filter通常会遇到以下问题:
1.操作系统(WINVER或_WIN32_WINNT)版本冲突问题
该问题通常可以通过修改操作系统版本号来修正,例如在预编译头stdafx.h中开始的地方使用如下形式的定义来排除冲突
#pragma once#ifndef POINTER_64#if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED))#define POINTER_64 __ptr64typedef unsigned __int64 POINTER_64_INT;#if defined(_WIN64)#define POINTER_32 __ptr32#else#define POINTER_32#endif#else#if defined(_MAC) && defined(_MAC_INT_64)#define POINTER_64 __ptr64typedef unsigned __int64 POINTER_64_INT;#else#if (_MSC_VER >= 1300) && !(defined(MIDL_PASS) || defined(RC_INVOKED))#define POINTER_64 __ptr64#else#define POINTER_64#endiftypedef unsigned long POINTER_64_INT;#endif#define POINTER_32#endif#endif // #ifndef POINTER_64该文件应用于使用预编译头或不使用预编译头的各种情况,只需要INCLUDE进来就OK了。
4.出现其他各类链接错误,有种比较能根治的措施 -- 重新编译SDK的BaseClasses工程。当然这样做还有更多的好处,最重要的一点是可以Review代码时,能调试跟踪。
[这里]提供了一份不用下载SDK或DX,而能编译并调试跟踪的工程源代码(包含生成STRMBASE.lib/strmbasd.lib的BaseClasses工程),使用到了陆其明提供的AVChat的开源代码(非常感谢这位老兄的无私奉献)做为示范,您只需要简单地右键”生成解决方案“就好了,希望对需要的朋友有些帮助。