好奇怪的问题呀---------在下开发directshow的应用程序一切正常,
不过用mfc的activex wiard ,编译连接后,却出现了3个连接错误,难道是mfc不能用来开发directshow 的ocx么?
听人说,好像是要用atl开发directshow的控件的,真的是这样么?那样岂不是难透了?
希望高手赐教了!!
连接错误是什么?是不是Link的Lib少写了?
不要在你的OCX工程内直接写#include "dshow.h"等包含DShow特有的头文件,可以新建一个类来封装这些操作,如:
//封装类H文件,cpp文件略
#include "dshow.h"
#include "qedit.h"
#include "streams.h"
class CHelp
{
public:
CHelp();
virtual ~CHelp();
IBaseFilter* GetSourceFilter();
IBaseFilter *m_pSourceFilter;
};
//操作类H文件
class CHelp;
class CManageStreams
{
public:
CManageStreams();
virtual ~CManageStreams();
CHelp* pHelp;
int InitCaptureCard();
}
//操作类cpp文件
#include "Help.h"
int CManageStreams::InitCaptureCard()
{
pHelp = new CHelp();
pHelp->m_pSourceFilter = pHelp->GetSourceFilter();
return 1;
}
这样在OCX工程中使用CManageStreams类就不会有Link的问题了。