您的位置:首页 > 其它

VC6 下配置DirectShow SDK开发环境及下载地址

2013-10-29 14:38 288 查看
   1、首先下载DirectX 9 SDK开发包。这个现在还是比较难搞到的,可以到微软官网上去下载。在《关于DirectShow的杂想》一文中介绍过,自从DirectX 9.0c sdk后,DirectShow SDK不再包含在DirectX SDK中,而是以Extras的形式发布,后来集成了一部分SDK到Windows SDK中,也就是说后来的环境(比如vs2005、vs2008环境下)比较难配置,极有可能不稳定,产生这样那样的错误。初学者可能看到如此难搞的环境配置就望而却步了,不利于学习。所以还是在VC6.0或者VC++2003环境下配置DirectX
9.0 SDK。以下是几个包含DirectShow SDK的DirectX SDK的下载地址,是在我的SkyDirive里的共享文件。

   ①DirectX 9.0 SDK:

   http://cid-a76c4a4a3032ded0.skydrive.live.com/browse.aspx/.Public/DirectX%209.0%20SDK

   ②DirectX 9.0b SDK:

   http://cid-a76c4a4a3032ded0.skydrive.live.com/browse.aspx/.Public/DirectX%209.0b%20SDK

   ③DirectX 9 sum_2004(2004年夏天更新的版本):

        http://cid-a76c4a4a3032ded0.skydrive.live.com/browse.aspx/.Public/DirectX%209.0%20SDK%5E_sum2004

   2、编译 StrmBasd.lib/StrmBase.lib。打开SDK\Samples\C++\DirectShow

\BaseClasses\baseclasses.dsw 编译 debug/ release 版本,则会得到相对应的 strmbasd.lib/ strmbase.lib ,把他们复制到 SDK\lib 目录下。

    注意,可能SDK里的这个baseclasses工程里的默认配置是Debug_Unicode。要改成Debug/Release。方法:在工具栏上右击鼠标,选择组建,就可以选择配置。

 

   3、环境设置:

      VC Menu: Tools->Options: 

      ①、设置 include path: 把 SDK\INCLUDE 以及 SDK\SAMPLES\C++\

DIRECTSHOW\BASECLASSES 放到 include 路径顺序最前边;

      ②、 设置 lib path: 把 SDK\LIB 放到 lib path 最前边。

 

  4、问题解决:

    在编译samples里的ASFCopy例子里,编译提示找不到wmstub.lib。可以到我的skydrive里下载该lib(http://cid-a76c4a4a3032ded0.skydrive.live.com/browse.aspx/.Public/wmstub.lib);将wmstub.lib复制到...\Samples\C++\DirectShow\Common里。再编译,就OK了。

    在编译dsnet例子里,编译提示:  C:\DXSDK\Samples\C++\DirectShow\Filters\DSNetwork\filter\..\sender\propsend.rc(24) :

致命错误RC1121: RC : fatal error RC1121 : I/O error reading file

在Zhong Liyuan的博客里找到了解决方法。

    这是关于多国语言转换的问题,原来的程序是英文版,在中文版里面就有这个问题。因为在Microsoft Windows 下,语言用代 码 页来识 别,不同 语言 用不同代码 页来表示, 如" 简体中文" 用代码页936 表示, 而"  美国英 语" 则 用代码页1252 表 示。

       

解决方法:把英文版本改为中文版本。

打开...\DXSDK\Samples\C++\DirectShow\Filters\DSNetwork\filter,在这里有一个资源文件filter.rc,打开查看,可看到:

// Include the resources for the sender and receiver libraries

#include "..\sender\propsend.rc"

#include "..\receiver\proprecv.rc"

分别用文本文档打开上述两个资源文件(注意一定是文本文档哦!)

找到下面一段代码:

// English (U.S.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

#ifdef _WIN32

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

#pragma code_page(1252)

#endif //_WIN32

将两个资源文件里的上述部分全部替换为成:

//  Chinese  (P. R. C.) resources

#if !defined(AFX_RESOURCE_DLL)  ||  defined(AFX_TARG_CHS) 

#ifdef  _WIN32 

LANGUAGE  LANG_CHINESE,  SUBLANG_CHINESE_SIMPLIFIED 

#pragma  code_page(936) 

#endif  //_WIN32

重新打开项目文件编译就ok了!!(这里谢了zhongliyong88师姐。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐