动态加载的DLL及时释放的问题(100分)

  • 主题发起人 主题发起人 HNXXCXG
  • 开始时间 开始时间
H

HNXXCXG

Unregistered / Unconfirmed
GUEST, unregistred user!
DLL封装了多个窗口对象<br>由主EXE动态调用<br>怎样做到当这个DLL封装的窗口全部关闭时,立即释放这个DLL?
 
在DLL里postmessage给主程序,在主程序里 freelib
 
能否具体写几行代码DEMO下
 
不用写代码了吧。<br>主程序设一个计数器<br>iShowCount: Integer;<br>每当打开新窗口就 Inc(iShowCount),每当DLL中的窗口关闭就 PostMessage 一个消息给主程序,<br>主程序收到消息就 Dec(iShowCount),当 iShowCount = 0 时就 FreeLibrary
 
楼上的这样做可能有些小问题,就是有多个这样的DLL时主程序就要定义多个计数器了。<br>不如把计数器变量定义在DLL里,呵呵。
 
多人接受答案了。
 
EXE肯定比DLL释放晚些,也就是说在EXE中负责释放DLL.<br>EXE中窗体和句柄可以通过变量的方式传入DLL中,而DLL中的句柄不能往外传.<br>所以只要每次传递消息时将字参数或者长参数的传设定为DLL中窗体句柄就好了,另一个参数用来传递值信息就好了.
 
后退
顶部