创建Filter遇到的问题?

51flyou 2004-09-14 03:08:01
我自己写了一个Filter,注册后在GraphEdit中组成链路运行正常
且位于DirectShow Fiters目录下
但在应用程序中我用CoCreateInstance创建Filter时却编译错误,提示
'CLSID_Blend' : undeclared identifier
'IID_IBlend' : undeclared identifier
怎么会没有声明呢,在写Filter的时候不是已经定义了

hr = CoCreateInstance(CLSID_Blend,
NULL,
CLSCTX_INPROC_SERVER,
IID_IBlend,
(void **)&pBaseFilter);

是不是在应用程序中创建Filter的时候有什么问题?
...全文
192 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
51flyou 2004-09-15
  • 打赏
  • 举报
回复
已经解决,需要在ClSID头文件前包含
initguid.h
51flyou 2004-09-15
  • 打赏
  • 举报
回复
已经放了,并且在相应位置加上了头文件
还是报错
error LNK2001: unresolved external symbol _CLSID_Blend
error LNK2001: unresolved external symbol _IID_IBlend
wangqin7927 2004-09-15
  • 打赏
  • 举报
回复
你把CLSID_Blend的定义文件放到自己应用程序目录下!
51flyou 2004-09-14
  • 打赏
  • 举报
回复
自已顶
51flyou 2004-09-14
  • 打赏
  • 举报
回复
在C...filter类中,用CreateInstance(LPUNKNOWN punk,HRESULT *phr)实现试试。
C...filter *pNewObject = new C...filter(NAME(...),punk,phr);

然后在CFactoryTemplate g_Templates[] =
{
...
C...filter::CreateInstance
}实例化


这在写Filter的时候已经是这样做的。
如果再在应用程序的.cpp中再定义CLSID_Blend,IID_IBlend提示下面错误
error LNK2001: unresolved external symbol _CLSID_Blend
error LNK2001: unresolved external symbol _IID_IBlend
kchai1 2004-09-14
  • 打赏
  • 举报
回复
或者在你的.cpp文件中将CLSID_...定义一下
DEFINE_GUID(NAME,...);
kchai1 2004-09-14
  • 打赏
  • 举报
回复
在C...filter类中,用CreateInstance(LPUNKNOWN punk,HRESULT *phr)实现试试。
C...filter *pNewObject = new C...filter(NAME(...),punk,phr);

然后在CFactoryTemplate g_Templates[] =
{
...
C...filter::CreateInstance
}实例化

2,552

社区成员

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

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