ISampleGrabberCB 封装成Dll 的一个问题

llhhxht 2005-09-11 10:10:18
初学,见谅

想实现这样的功能:
从摄像头捕捉到视频
放到内存 --> 个人认为不应该这样处理
经处理后
从内存播放出来 --> 这个似乎也不太容易
整个过程是要连续实时的
整体上有一个时间延迟应该无妨


以下是我现在的方法, 请问是不是整体上就不对?
(目前我只能实现1frame/sec的抓,所以放起来结果惨不忍睹)
从ISampleGrabberCB 派生出 CSampleGrabberCB 并加入其他变量

问题是这样的
我看书上说能在Extended Dll中整个封装一个类(叫类A,这里就是CSampleGrabberCB)
但是如果A中含有的变量中间有其他类(类B)的对象
还能成功么?

具体的说,我在A中抓到bmp图片,放到内存


原来的程序由A负责将内存中的图片显示出来,所以要知道对话框的指针
所以
class A : public ISampleGrabberCB
{
...
COtherDlg *pOwner;
...
};

现在要把A做成dll,
我试了一下声明成
extern CCaptureDlg * pOwner;

dll能正常生成
但调用dll的工程却不能编译

报错大致为: (CSampleGrabberCB是放到dll里面的类,将其 .h文件放到调用的工程中 include进来)
*.h(41): error C2143: 语法错误 : 缺少“;”(在“*”的前面)
*.h(41): error C2501: “CSampleGrabberCB::CCaptureDlg” : 缺少存储类或类型说明符
*.h(41): error C2501: “CSampleGrabberCB::pOwner” : 缺少存储类或类型说明符

请问应该怎样处理?
谢谢
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyhzpk 2005-09-23
  • 打赏
  • 举报
回复
写个transform filter就可实现这样的功能,
但如果一定要写成dll的形式的话,整个显示
过程都要写在dll中了
dcduanchang 2005-09-23
  • 打赏
  • 举报
回复
我觉得可以试着让dll返回一块要显示的数据块,再在其它类里面显示就是了。也就是说在Dlg的某个函数里调用dll的函数得到数据。然后显示。这样就不需要让dll知道他的数据将在何处被显示了。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧