佚名通过本文主要向大家介绍了comdll32u.dll,comdll.dll,comdll,内存加载dll,加载dll申请内存对象等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 如何得知一个COM DLL(或普通的DLL)什么时候被卸出内存
描述:
描述:
DLL应该是被所有使用它的程序所共有的,也就是在内存中只有一份拷贝以节省内存,当然COM的也是一样,我们如何得知自己的DLL什么时候真正不用被从内存中卸掉了。DllMain中的DLL_PROCESS_DETACH是当DLL被从一进程中卸掉时调用的,DllCanUnloadNow中返回的计数也是针对每一应用程序的进程的,DLL中的全局变量好像只是针对特定进程的,而不是全系统的全局变量。是否DLL什么时候真的被卸掉完全由系统来控制,就像虚拟内存的换页一样,我们无法参与这个过程。
是否除了自己用加入全局变量(Semaphore、File Mapping、Mutex等这些东西)的方法,没有别的办法能知道COM(DLL)的引用计数吧?