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

错误为: 
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(); 
  } 
  ////////////////////////////////////////////////////////////////////////////

时间: 2024-09-15 12:09:50

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

mfc activex控件-MFC中 ACTIVEX控件活动与非活动区别!!!

问题描述 MFC中 ACTIVEX控件活动与非活动区别!!! 请问下 ACTIVEX控件 活动与非活动状态区别?也就是说有窗口和无窗口的区别?谢谢 能详细介绍下不胜感激!!(比如他们用途区别,例子说明更好)

Win8系统安装过程中提示Error Code:0x0000005D错误的解决方法

  win8系统虽然在慢慢退出市场,不过还是有不少的用户喜欢Win8系统的风格,而在Win7升级win8系统的过程中会出现一些问题,有位用户遇到错误提示Error Code:0x0000005D的问题,该如何解决此问题呢?下面小编研究整理安装Win8系统提示Error Code:0x0000005D错误的解决方法. 错误信息如下: Your PC needs to restart. Please hold down the power button Error Code:0x0000005D P

在Ubuntu Linux中安装XAMPP(LAMPP)服务器套件时出现错误的解决方法

怎样安装请在本博客参阅其安装. 1.在终端安装XAMPP时出现/opt/lampp/lampp: line 74: arch: command not found的错误提示 原因:未找到 解决方法: 在终端输入sudo nano /bin/arch 在弹出的编辑框界面中增加一行uname -m 保存退出 再次在终端中输入sudo chmod +x /bin/arch 问题解决 2.如果在启动warning: World-writable config file /opt/lampp/etc/my

GridView中日期不显示时分秒的完美解决方法_实用技巧

两种处理方式: 1.模版列:假设数据表的字段completeTime的类型为时间格式 <asp:TemplateField HeaderText="时间"> <ItemTemplate> <%#Eval("completeTime", "{0:yyyy-MM-dd}")%> </ItemTemplate> </asp:TemplateField> 2.绑定列: <asp:Bound

Linux(RHEL4)中ftp的设置暨530错误的解决方法

         在windows上使用ftp命令登录Linux服务器时总是提示:530 Must perform authentication before identifying USER.明明在服务器已经建立了test用户,但是使用该用户登录时,却不能成功,但是从Linux的日志可以看到已经连接上服务器,但是并没有登录成功.解决方法如下:        一.使用vsftpd        1.System Settings→Server Settings →Service,在服务列表中取消

动态创建script在IE中缓存js文件时导致编码的解决方法_javascript技巧

先看下重现代码 1, gb2312.html 该文件编码为gb2312 复制代码 代码如下: <!DOCTYPE html> <html> <head> <title></title> <meta charset="gb2312"/> <style> p { color: red; } </style> </head> <body> <button onclic

ASP与ActiveX控件交互实战

active|activex|交互|控件 关键字:ASP,ActiveX控件,数字签名,安全 ActiveX控件运行在客户端.我们可以获得客户端的一些信息,如IC卡的信息,客户端的验证等等.但是ActiveX控件也有许多缺点:客户端的部署很困难,如客户端不能正确下载,下载了以后不能正确执行,下载的时候需要设置IE的安全级别等等. 更多的时候,我都在使用COM组件来扩展ASP的功能.准确地说,是服务端运行的Activex Dll组件.使用Server.CreateObject("工程名.类名&qu

ASP与ActiveX控件交互实战(一)

active|activex|交互|控件 龙卷风 关键字:ASP,ActiveX控件,数字签名,安全 ActiveX控件运行在客户端.我们可以获得客户端的一些信息,如IC卡的信息,客户端的验证等等.但是ActiveX控件也有许多缺点:客户端的部署很困难,如客户端不能正确下载,下载了以后不能正确执行,下载的时候需要设置IE的安全级别等等. 更多的时候,我都在使用COM组件来扩展ASP的功能.准确地说,是服务端运行的Activex Dll组件.使用Server.CreateObject("工程名.类

ASP与ActiveX控件交互实战(二)

active|activex|交互|控件 龙卷风 关键字:ASP,ActiveX控件,数字签名,安全 我们来看看如何从服务端获取数据,传递到ActiveX控件中. 1) 初始化时使用参数绑定 2) 运行时得到数据 打开vb6,新建ActiveX控件工程. 工程名:fOcx,用户控件名:UC2 为了方便,我们使用ActiveX控件接口向导-,菜单->外接程序->外接程序管理器->VB 6 ActiveX控件接口向导.确定即可. 打开ActiveX控件接口向导,下一步,对于可用名称和选定名称