CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

在控件中加载dll!

楼主yang79tao()2006-03-17 11:47:02 在 VC/MFC / ATL/ActiveX/COM 提问

我用了个dll来专门存放资源,比如字符串、位图等,加载dll的方法是动态加载(LoadLibrary、FreeLibrary),在两个应用程序中使用完全没问题,因为应该程序1与应该程序2分别将资源dll中的资源映射到了自己的内在空间。问题出在在两个控件中动态加载资源的情况下,此时两个控件共用资源dll中的资源,所以如果某一个控件退出(此时调用FreeLibrary,接着资源dll会释放自己的资源),则另一个控件再也无法取得所需的资源了,请问这个问题如何解决?  
  换句话说,在两个应用程序中,两次加载资源dll是独立的,而在控件中两次加载资源dll是共享的,其实只被加载了一次(我在dll的InitInstance函数中做了观察,该函数只运行了一次)。 问题点数:50、回复次数:2Top

1 楼xiaoqiqixiao(七七)回复于 2006-03-17 13:24:03 得分 50

设置一个全局变量DWORD   m_dwRef   =   0,在控件的构造函数中  
  if(m_dwRef   ==   0){  
      LoadLibrary(yourdllname);  
  }  
  m_dwRef++;  
  在控件的退出(估计是析造函数吧)中  
  m_dwRef--;  
  if(m_dwRef   ==   0){  
      FreeLibrary(yourdll);  
  }Top

2 楼yang79tao()回复于 2006-03-17 19:33:51 得分 0

DWORD   m_dwRef这个变量是dll的还是控件的?Top

相关问题

  • 在VB中能用程序加载控件或dll程序吗?
  • DLL中如何给动态生成的控件加载事件??
  • FORM中控件的加载顺序?
  • DataGrid 加载控件
  • 有点难度的问题,在VB中引用VC写的控件,该控件用到一个DLL,该怎么加载
  • delphi中怎样加载dll?
  • 如何把控件动态加载到一个容器控件中?
  • 如何判断一个控件数组中的控件已经加载
  • 如何动态向picture控件中加载图片
  • 怎么在html中给ImageList控件加载图片

关键词

  • 控件
  • 函数
  • dll
  • 加载
  • dwref
  • 资源
  • freelibrary
  • 问题

得分解答快速导航

  • 帖主:yang79tao
  • xiaoqiqixiao

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo