0

嗨,我想在实时视频上叠加位图。我正在尝试使用 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++ 不支持默认整数
错误 22 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
错误 26 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
错误 27 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 错误 36 错误 C2228:'.m_alpha' 左侧必须有类/结构/联合
错误 38 错误 C2227:'->SetAlphaBitmap' 左侧必须指向类/结构/联合/通用类型
错误 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

4

1 回答 1

1

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

G

来自 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>
于 2010-04-12T08:55:41.067 回答