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

翻译|其它|编辑:郝浩|2007-03-02 13:22:48.000|阅读 1997 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

错误为: 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" (<A href="mailto:?g_cTemplates@@3HA">?g_cTemplates@@3HA</A>)
 
 原因好像出在标准C上,与用户代码无关。
 
 ----------------------------解决方案--------------------------------------
 

 打开XXX_XXCtl.h头文件,在程序开头的这些代码
 #if !defined(AFX_OCX_MICPHONECTL_H__3388C6A4_9DE5_4D2F_9021_920EF2BF5CAB__INCLUDED_)
 #define AFX_OCX_MICPHONECTL_H__3388C6A4_9DE5_4D2F_9021_920EF2BF5CAB__INCLUDED_
 
 #if _MSC_VER > 1000
 #pragma once
 #endif // _MSC_VER > 1000 的下面加上以下代码即可。
 
 /////////////////////////////////////////////////////////////////////////////
 // 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();
 }
 ////////////////////////////////////////////////////////////////////////////
 
 重新编译即可!


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP