在实时视频上叠加位图

时间:2010-04-12 06:43:48

标签: video directshow overlay msdn

您好我想在实时视频上叠加位图。我试图用directshow样本做这个。 我编辑了PlayCapMonker示例并添加了一些函数来启用它。 我用以下链接

中解释的程序做到了这一点

http://www.ureader.com/msg/1471251.aspx

现在我正在犯错误

错误2错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误3错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误5错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误6错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误8错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误9错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误21错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误22错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误26错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
错误27错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int 错误36错误C2228:'。m_alpha'的左边必须有class / struct / union
错误38错误C2227:' - > SetAlphaBitmap'的左侧必须指向类/ struct / union / generic类型
错误7错误C2146:语法错误:缺少';'在标识符“池”之前 错误4错误C2146:语法错误:缺少';'在标识符'格式'之前c:\ Program Files \ Microsoft Platform SDK \ include \ Vmr9.h 368 PlayCapMoniker 错误1错误C2143:语法错误:缺少';'在''之前 错误20错误C2143:语法错误:缺少';'在''之前 错误25错误C2143:语法错误:缺少';'在'*'之前 错误30错误C2065:'g_pMixerBitmap':未声明的标识符
错误33错误C2065:'g_pMixerBitmap':未声明的标识符
错误37错误C2065:'g_pMixerBitmap':未声明的标识符
错误31错误C2065:'g_hbm':未声明的标识符
错误32错误C2065:'g_hbm':未声明的标识符
错误35错误C2065:'config':未声明的标识符
错误10错误C2061:语法错误:标识符'IDirect3DSurface9'
错误11错误C2061:语法错误:标识符'IDirect3DSurface9'
错误12错误C2061:语法错误:标识符'IDirect3DSurface9'
错误13错误C2061:语法错误:标识符'IDirect3DSurface9'
错误16错误C2061:语法错误:标识符'IDirect3DSurface9'
错误19错误C2061:语法错误:标识符'IDirect3DSurface9'
错误23错误C2061:语法错误:标识符'IDirect3DSurface9'
错误24错误C2061:语法错误:标识符'IDirect3DSurface9'
错误28错误C2061:语法错误:标识符'IDirect3DSurface9'
错误29错误C2061:语法错误:标识符'IDirect3DSurface9'
错误14错误C2061:语法错误:标识符'IDirect3DDevice9'
错误15错误C2061:语法错误:标识符'IDirect3DDevice9' 错误17错误C2061:语法错误:标识符'IDirect3DDevice9'
错误18错误C2061:语法错误:标识符'IDirect3DDevice9'
错误34错误C2039:'pDDS':不是'_VMR9AlphaBitmap'SDK \ Samples \ Multimedia \ DirectShow \ Capture \ PlayCapMoniker \ PlayCapMoniker.cpp的成员263 PlayCapMoniker

1 个答案:

答案 0 :(得分:1)

这是一个众所周知的问题(意思是:谷歌会成为你的朋友),涉及各种头文件(qedit.h,d3d9.h,vmr.h)之间的冲突。例如,请参阅http://tmhare.mvps.org/faqs.htm#qed

来自tmhare网站的内容:   您可能还在包含文件列表中。这是一个已知问题,解决方法是将使用VMR9的代码和使用DES的代码以及IMediaDet等相关函数拆分为两个单独的源文件。这意味着您不能将任何头文件放在预编译的头文件中,例如stdafx.h。

chadderack在新闻组上发布了另一种解决方案。他使用下面的#define以避免冲突:

#ifndef __D3DRM_H__
#define __D3DRM_H__
#endif

#include <dshow.h>
#include <d3d9.h>
#include <vmr9.h>
#include <qedit.h>
#include <dxerr9.h>
相关问题