注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mie

 
 
 

日志

 
 

dll中释放自身  

2011-01-29 06:58:34|  分类: Windows开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
dll中调用FreeLibrary释放自身

根据MSDN的解释,调用FreeLibrary,将减少进程中的dll的引用计数,当引用计数为0时,dll将被释放。如果在DllMain中调用FreeLibrary,FreeLibrary再调用DllMain,DllMain再次调用FreeLibrary,如此循环,将导致函数调用栈溢出,进而导致进程崩溃。所以,DllMain中调用FreeLibrary,应该加入一个标记,防止无限循环调用。

调用FreeLibrary后,需要确保程序不再使用dll中的代码,因为此时dll已经释放,再调用其中的代码,就等同于访问不存在的地址,结果是进程崩溃。

看来,最好不要在dll中释放自身,否则,各种奇怪的崩溃问题就会接踵而至。

By:zhanyonhu
  评论这张
 
阅读(963)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016