directshow在vc2005的配置
来源:互联网 发布:潮流计算软件 编辑:程序博客网 时间:2024/06/05 19:52
一.DirectShow的环境配置:
本人使用的是VS2005,要使用DirectShow进行编程,需要对环境进行必要的配置。
第一步:对dssdk中的baseclass.sln进行编译,生成需要的debug和release文件,具体步骤如下:
在VS6中,安装DirectShow9c版本之后,直接打开BaseClass中的VS6工程baseclasses.dsw文件,直接编译即可,编译Debug Release Debug_Unicode Release_Unicode四个版本,都需要进行额外的设置(头文件或者链接库目录设置)。
DirectShow的BaseClass中已经带了VS2005的工程文件baseclasses.sln,在vs2005中打开此文件,提示你进行必要的工程转换,转换之后开始编译,编译过程一般会出现下面两个问题:
(1)C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include/winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
(2)error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
(3)error C2065: 'Count' : undeclared identifier
第一类问题的解决:安装xpsp2,如何将其include目录包含进去;一般将其放在dshow头文件之后,放在platsdk目录之前;
第二类问题的解决:错误发生在:operator=(LONG);函数定义中,这是因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整形;但是vs2005不支持默认整形,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用wd4430来解决;具体的在工程选项中的c++/Command Line中添加/wd4430即可。
第三个错误发生在for循环中,vs6中for循环中定义的变量相当于在for外面定义,可以在for之外地方使用;但是vs2005for循环中定义变量相当于域{}变量,只能在for循环中使用。要解决这个问题,可以通过修改vs2005的工程选项:”Project Option” --– “ C++ ” —-- “Language” --- “Force Comformance in For Loop Scrope” 设置为No即可。
完成上面的设置,BaseClass工程基本可以编译通过了。
第二步:需要设置相应的配置
在把dxsdk中提供的baseclass编译通过后,用四种方式编译,会分别生成四个lib,一般只用到了其中的Debug和Release文件,在tool|option|vc++ directories中包含的files中设置如下。
这里需要加入得include files有三种:
D:/SDK/DXSDK/Include
D:/SDK/DXSDK/Samples/C++/DirectShow/BaseClasses
D:/SDK/DXSDK/Samples/C++/Common/Include
在后边的library files中也需要增加三到四种的文件:
D:/SDK/DXSDK/Lib
D:/SDK/DXSDK/Samples/C++/DirectShow/BaseClasses/Debug
D:/SDK/DXSDK/Samples/C++/DirectShow/BaseClasses/Release
把以上设置好,基本就可以将DirectShow程序在vs2005环境中编译通过
第三个错误发生在for循环中,vs6中for循环中定义的变量相当于在for外面定义,可以在for之外地方使用;但是vs2005for循环中定义变量相当于域{}变量,只能在for循环中使用。要解决这个问题,可以通过修改vs2005的工程选项:”Project Option” --– “ C++ ” —-- “Language” --- “Force Comformance in For Loop Scrope” 设置为No即可。
hurryboylqs(421120834) 15:52:41
第二类问题的解决:错误发生在:operator=(LONG);函数定义中,这是因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整形;但是vs2005不支持默认整形,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用wd4430来解决;具体的在工程选项中的c++/Command Line中添加/wd4430即可。
hurryboylqs(421120834) 15:53:50
最后一个问题:
missing ';' before identifier 'PVOID64'
hurryboylqs(421120834) 15:54:26
这个问题按网上的改,直接修改系统头文件即可,不影响的
雁翎V牛人(494735373) 15:54:48
恩。谢谢了。
hurryboylqs(421120834) 15:55:56
配置好这些后 用2005编译BaseClasses,一切就OK了
- directshow在vc2005的配置
- CUDA的VC2005配置
- opencv1.0在VC2005的的配置说明
- DirectShow 在VS下的环境配置
- wxWidgets在vc2005下的配置 和 使用注意!!
- VC2005中安装DirectShow
- 【opencv + Directshow + VC2005】视频采集中遇到的问题
- CxImage 在VC2005中配置以及使用
- CxImage 在VC2005 DLL方式简单配置
- Intel MKL 在vc2005配置方法
- 在没有安装VC2005的环境下运行VC2005程序
- directshow环境的配置
- DirectShow SDK安装以及在vs2010上的配置
- 在VC2005下配置OGRE环境时,遇到的问题总结
- 关于VC2005工程配置的说明
- DirectShow学习之一在vs2005中配置directshow开发环境
- DirectShow学习之一在vs2005中配置directshow开发环境
- DirectShow学习之一在vs2005中配置directshow开发环境
- Hibernate中get和load的区别
- WCF从理论到实践系列文章索引
- vs2008 添加全局变量
- RCP系统托盘实现方法
- 使用Access当数据库时,这个问题郁闷了我好几天啊![OleDbException (0x80004005): 操作必须使用一个可更新的查询。]
- directshow在vc2005的配置
- 系统开发日志
- java正则表达式; regular expression(转)
- Java中OutOfMemoryError与unable to create new native thread(JVM创建大量线程)的关系
- 下载显示图片
- php与asp共用cookie
- 修改默认的网页查看源代码工具
- 利用ASP获得图象的实际尺寸的示例
- 放大缩小容器:仿动画