怎么判断dll正被某个程序占用

如何判断dll正被某个程序占用?
RT
——————————

------解决方案--------------------
最土的方式就是枚举进程,然后枚举进程的进程空间得到所有的模块信息。
------解决方案--------------------
可以删除  看看报不报错!
------解决方案--------------------
DeleteFile  返回失败 还有MoveFile之类的
CreateFile Genericwrite 打开 



------解决方案--------------------
用procexp试试
------解决方案--------------------
http://blog.****.net/guogangj/article/details/2261031  
dll占的究竟是谁的空间?——浅谈Windows内存机制 

http://www.clxp.net.cn/article.asp?id=1902
查看Dll文件被谁占用SeeDLL1.0     
程序下载

------解决方案--------------------
proexp搜句柄 关句柄 
当然也可以用程序实现
------解决方案--------------------
引用:
我的dll被进程A占用了,删除失败
但是通过枚举A 的 modules都没发现该dll

这又是什么情况呢
如果把A强制关闭了,dll就可以删除了,

真是诡异

万一A是LoadLibrary加载的,你枚举的只是snapshot,正好此时A没占用dll,或者就是枚举的时候漏掉了什么