在activex控件工程中使用directshow,编译时link错误的解决方法

在activex控件工程中使用directshow,编译时link错误的解决方法

转载自: http://www.wangchao.net.cn/bbsdetail_839548.html

错误为:
strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (g_Templates@@3PAVCFactoryTemplate@@A)
strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (g_cTemplates@@3HA"g_cTemplates@@3HA)

原因好像出在标准C上,与用户代码无关。
----------------------------解决方案--------------------------------------
加入下面加上以下代码,重新编译即可.
   /**/ ///////////////////////////////////////////////////////////////////////////// 
   //  DllGetClassObject 
   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(); 
  }
 
  
/**/ ////////////////////////////////////////////////////////////////////////////



你可能感兴趣的:(在activex控件工程中使用directshow,编译时link错误的解决方法)