关于 DirectShow 中各个例子的编译转换问题
2013-07-13 23:49
274 查看
那些项目都是老旧的VC2003的,转换成05、08后,会有一系列编译问题,具体操作如下:
1. 首先要安装 DirectX SDK 和 Windows SDK,两个版本最好是相对应的,一致的,不能一个旧一个新。
2. 首先要编译基本库 BaseClasses, 编译时会遇到 ctlutil.h 中 operator=(LONG); 这一句不支持默认int的问题,这时需要在C/C++下的命令行添加一个编译指令 /wd4430
3. BaseClasses这个项目的默认 include 目录是相对与以前的DXSDK目录设置的(.,..\..\..\..\include),现在过期了,要重新设置成新安装的include目录,同时需要更改管理员->命令行下那个附加的库,直接把库删掉就行
4. 编译 StillCap,里面有个Qedit.h,新SDK For Win7里根本没有,幸好SDK6.0里有,找到它,去掉里面的一句话,把dxtrans.h注释掉,然后在#include <qedit.h>前面加上四句话
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__
5. 编译 StillCap 会出现很多外部链接没有,其实少了一个 striids.lib ,这个lib是windows SDK的,新的SDK里叫做 strmiids.lib
6. CMediaType 依赖的就是Baseclasses库,即需要strmbas lib
Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow 下也有一份示例代码,这些代码都是最新的VS2005的,很好用,不过如果把include目录添加到了VC++目录的最后面,就会因为采用了VC8的旧h文件而出现 error C2061: syntax error : identifier '__deref_out_range’
所以要把WinSDK和DXSDK的附加包含目录条目写在最前面!
1. 首先要安装 DirectX SDK 和 Windows SDK,两个版本最好是相对应的,一致的,不能一个旧一个新。
2. 首先要编译基本库 BaseClasses, 编译时会遇到 ctlutil.h 中 operator=(LONG); 这一句不支持默认int的问题,这时需要在C/C++下的命令行添加一个编译指令 /wd4430
3. BaseClasses这个项目的默认 include 目录是相对与以前的DXSDK目录设置的(.,..\..\..\..\include),现在过期了,要重新设置成新安装的include目录,同时需要更改管理员->命令行下那个附加的库,直接把库删掉就行
4. 编译 StillCap,里面有个Qedit.h,新SDK For Win7里根本没有,幸好SDK6.0里有,找到它,去掉里面的一句话,把dxtrans.h注释掉,然后在#include <qedit.h>前面加上四句话
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__
5. 编译 StillCap 会出现很多外部链接没有,其实少了一个 striids.lib ,这个lib是windows SDK的,新的SDK里叫做 strmiids.lib
6. CMediaType 依赖的就是Baseclasses库,即需要strmbas lib
Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow 下也有一份示例代码,这些代码都是最新的VS2005的,很好用,不过如果把include目录添加到了VC++目录的最后面,就会因为采用了VC8的旧h文件而出现 error C2061: syntax error : identifier '__deref_out_range’
所以要把WinSDK和DXSDK的附加包含目录条目写在最前面!
相关文章推荐
- 关于 DirectShow 中各个例子的编译转换问题
- C语言学习4: 函数返回值与传入参数,关于函数值传递和类型隐性转换,变量不同的作用域,static变量,多文件编译例如两个C文件,显示函数调用语句跳转,递归,斐波那契数列,多文件编译相同变量的问题。
- 关于调试directshow下例子的问题
- 关于安装 DirectX SDk Dec 2005 后无法编译DirectShow应用程序的问题
- [原创]关于《精通QT4编程》第一个例子无法编译的问题的解答
- 关于软浮点、硬浮点的转换问题。uboot 编译出错
- 编译一些网上的directshow的例子时候,总会遇到各种各样的问题,下面搜集如下:
- [原创]关于《精通QT4编程》第一个例子无法编译的问题的解答
- FlashDevelop+OMSF第一个例子,关于编译常量的问题
- Tomcat 7 编译JSP2.0技术手册中的例子出现的错误问题
- 关于rt3070驱动编译问题(2)
- 关于Java程序在编译时出现的编码问题
- 关于 TerminateProcess函数 在c++的进程中的学习而发现VS2008的编译安全问题
- 关于vs编译后bin下的dll文件重新出现的问题
- 关于CTEX处理参考文献编译出错的问题
- 关于UTL会自动转码的问题 %自动转换为%25
- 关于使用apktool可以反编译无法回编译的解决问题
- 关于json转换中出现的一个问题
- 关于_com_util::ConvertBSTRToString”: 编译错误问题
- 关于include<vector>编译错误问题