当前位置:  开发笔记 > 开发工具 > 正文

如果卸载加载它的DLL,是否会删除DLL?

如何解决《如果卸载加载它的DLL,是否会删除DLL?》经验,为你挑选了1个好方法。

采用标准的Windows应用程序.它使用LoadLibrary加载DLL来调用其中的函数(我们称之为DLL_A).该函数加载另一个DLL(我们称之为DLL_B).应用程序现在使用FreeLibrary卸载DLL_A DLL,因为它不再需要它.

问题是: DLL_B是否仍在内存中并加载?

这是我可以依赖的东西,还是没有文件记录?



1> Michael Burr..:

号码DLL_B不会被卸下.进行的LoadLibrary()调用DLL_A将增加负载计数DLL_B.由于没有相应的FreeLibrary()调用DLL_B,refcount不会变为零.

从LoadLibrary()文档:

系统在所有已加载的模块上维护每个进程的引用计数.调用LoadLibrary会增加引用计数.调用FreeLibrary或FreeLibraryAndExitThread函数会减少引用计数.系统在其引用计数达到零或进程终止时(无论引用计数如何)卸载模块.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有