如何在Dll中自动调用FreeLibrary

zcd_jimy 2002-12-30 03:06:07
我在Dll中调用LoadLibray装载另一个Dll,并且想在我的Dll被释放时,自动使用FreeLibrary释放该Dll.将FreeLibrary放在DllMain()中可以实现,但MS说这样不安全,请问还有没有什么方法呢?请赐教
...全文
71 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcd_jimy 2003-01-02
  • 打赏
  • 举报
回复
谢谢In355Hz,再仔细看了MSDN,所谓的not safe的确是指如果两个Dll相互调用。
youthcsdn 2002-12-31
  • 打赏
  • 举报
回复
gz
In355Hz 2002-12-31
  • 打赏
  • 举报
回复
sorry, 我是指调用 FreeLibrary 释放的 DLL 没有引用到当前执行 DllMain 的 DLL。
因为这时当前 DLL 的内部引用计数已经是 0,如果释放的 DLL 再减少当前 DLL 引用计数的话...
eduyu 2002-12-31
  • 打赏
  • 举报
回复
楼主,打搅了。

什么叫做不依赖于自身?
In355Hz 2002-12-30
  • 打赏
  • 举报
回复
比如设计一个类,在类的 Destructor 中调用 FreeLibrary,然后为该类申明一个全局变量。

其实在 DllMain 中调用 FreeLibrary 也不是不可以(只要释放的 DLL 不依赖于自身),可参考 MFC 的 DllMain

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧