direct show 编译问题
在 exe工程中 没有问题
到了OCX工程中 报错:
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates " (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates " (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol "int g_cTemplates " (?g_cTemplates@@3HA)
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates " (?g_cTemplates@@3HA)
网上有人说 如下更改就可以:
extern "C "
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return AfxDllGetClassObject(rclsid, riid, ppv);
}
/////////////////////////////////////////////////////////////////////////////
// DllCanUnloadNow
extern "C "
STDAPI DllCanUnloadNow(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
return AfxDllCanUnloadNow();
}
但我加了后 出现:
VisionCaptureCtl.obj : error LNK2005: _DllGetClassObject@12 already defined in ImageListDlg.obj
VisionCaptureCtl.obj : error LNK2005: _DllCanUnloadNow@0 already defined in ImageListDlg.obj
实在不知道该怎么办了 有能帮我解决的吗 不胜感激
[解决办法]
你用的是什么版本的directshow,什么版本的VS