当前位置: 代码迷 >> 多媒体/流媒体开发 >> direct show 编译有关问题
  详细解决方案

direct show 编译有关问题

热度:10574   发布时间:2013-02-26 00:00:00.0
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
  相关解决方案