老问题: 释放内存(dll)(100分)

  • 主题发起人 主题发起人 dark
  • 开始时间 开始时间
D

dark

Unregistered / Unconfirmed
GUEST, unregistred user!
通过WIN32的FREELIBRARY释放时无问题:
现想如下: 在DLL自己的FORM中释放DLL(用点饥事件),(FORM无模式显
示) (不是在调用DLL的FORM中释放)
原来想在程序中利用WIN32的函数获取
DLL句柄,再传过去,但不行,传过去的DLL发生改变。
有人在DLL自己的FORM中通过在FormClose的事件中加入如下代码实现了
内存释放 Action:=cafree; FormMain:=nil;
但我这样做就不行,为何?
 
你的意思是在dll的代码里面 free library自己?
我想来想去,直接用 freelibrary 是会出错的,
只能够另起一个thread,用 FreeLibraryAndExitThread

dll 的 HMODULE 就是 DllEntryPoint 传来的 hInst
 
to pipi
FreeLibraryAndExitThread是在DLL程序内部还是调用他的程序内?
若在调用他的程序内,好象用消息方法就够了!
dll 的 HMODULE 就是 DllEntryPoint 传来的 hInst//这句话我不大清楚
我确实是希望在DLL内部能关闭自己,并释放内存。
希望提供高见。
 
我建议最好用消息来处理,在DLL 程序中发送一个消息给调用他的程序,由他来
释放。在DLL自己的FORM中释放DLL,好象不能实现
 
>> 我建议最好用消息来处理,在DLL 程序中发送一个消息给调用他的程序,由他来
什么样儿的消息??
 
用消息吧,“有人”教你的Action:=cafree; FormMain:=nil纯粹是瞎说。
 
多人接受答案了。
 
后退
顶部