VS2005增加一个Direct show fitter 的配置

最近在弄OV3640驱动,驱动完成后,图像和屏之间旋转了90°,240*320的屏幕,图像显示是320*240,要将图像顺时针旋转90才正常,网上搜了一大片,有用inter ipp中的旋转函数的,也有在上层应用软件中,加TransformFilter的,inter ipp 和direct show 咱都不会呀,网上下了个CameraCap.rar,下载地址:http://dev.10086.cn/cmdn/bbs/thread-17576-1-1.html     这个程序已经实现了fitter旋转90°,现在的要求是把这个fitter 移植到自己的应用程序上,当然应用程序都是基于direct show的,移植过程中出现的问题如下:

错误1;1>e:\vc++ test\camerademo test\camerademo\RotateFilter.h(8) : error C2504: 'CTransformFilter' : base class undefined

产生错误的原因:没有包含相应的头文件;

解决办法:加     #include "Dshow.h"
                             #include "Streams.h"

再编译后会出现错误2:RotateFilter.obj : error LNK2019: 无法解析的外部符号 "public: unsigned long __cdecl CMediaType::GetSampleSize(void)const " (?GetSampleSize@CMediaType@@QBAKXZ),该符号在函数 "public: virtual long __cdecl CCRotateFilter::DecideBufferSize(struct IMemAllocator *,struct _AllocatorProperties *)" (?DecideBufferSize@CCRotateFilter@@UAAJPAUIMemAllocator@@PAU_AllocatorProperties@@@Z) 中被引用
1>UT_S3C6410_SDK (ARMV4I)\Debug\CameraDemo.exe : fatal error LNK1120: 1 个无法解析的外部命令


产生原因:未添加direct show 的库。

解决办法:

Project->properties->configuration properties->linker->Input下添加:

Additional Dependencies: strmbase.lib strmiids.lib commdlg.lib,

再次编译 

出现类似下面这类问题;


无法解析的外部符号 "public: virtual unsigned long __cdecl CBaseFilter::NonDelegatingRelease(void)" (?NonDelegatingRelease@CBaseFilter@@UAAKXZ)

如果你遇到上面的错误,而且经过各种努力都无济于事,这个错误都一直存在,那么,啥也不说了,直接在这里下载这个库: http://www.alexfeinman.com/files/strmbase.zip

把你的原来的库文件替换掉。5.0:\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Lib\ARMV4I

6.0: \Program Files\Windows Mobile 6 SDK\PocketPC\Lib\Armv4i

将解压后的文件直接拷进去,替换掉,为了保险起见,先备份一下原来的文件。

原因:在于随SDK发布的这个strmbase的lib在debug模式下是错误的





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值