动态调用Dll中的Form用Show的方式如何FreeLibrary?

pnmrbo 2011-08-12 02:04:29
Dll中有个Form,动态调用它,这个Form不用Showmodal而是Show,如何在结束这个Form时FreeLibrary?
...全文
166 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
pnmrbo 2011-09-01
  • 打赏
  • 举报
回复
我在Dll的Onclose里Postmessage给主程序,然后主程序收到这个消息时Freelibrary,这样也会连主程序也结束掉,但我在主程序中用一个timer来Freelibrary则没有问题,请问这是为什么
OO_is_just_P 2011-08-31
  • 打赏
  • 举报
回复
最好用callback
vokeyliu 2011-08-31
  • 打赏
  • 举报
回复
DLL不用你手工卸载吧,在引用计数为零的时候应该是自动释放的吧
pnmrbo 2011-08-31
  • 打赏
  • 举报
回复
还是解决不了,请高手指点
山东蓝鸟贵薪 2011-08-17
  • 打赏
  • 举报
回复
跟踪测试一下
taste品味 2011-08-17
  • 打赏
  • 举报
回复
你可以把DLL的句柄传到窗体中啊
rainychan2009 2011-08-16
  • 打赏
  • 举报
回复
这个不复杂啊,你有那个form的句柄,直接关闭就行了啊,只是注意在DLL中写好OnDestroy施放相关资源就成
「已注销」 2011-08-16
  • 打赏
  • 举报
回复
FormDestroy事件中给主程序窗口发一天‘我关闭了’的消息,用postmessage,主程序窗口收到这条消息以后,先processmessage一下,确保窗口已关闭,然后FreeLibrary.
pnmrbo 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jekhn 的回复:]
Dll里面有一个DLLProc的过程,DLL加载的时候会传入Dll_Process_attach的reason_id,卸载的时候会传入Dll_Process_detach,你就可以在detach的时候free你的form就可以了。
[/Quote]
谢谢,我是想在我把Dll中这个Form关闭时可以卸载Dll,而不是主程序关闭时才卸载
rainychan2009 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 pnmrbo 的回复:]

我把LoadLibrary出来的Handle传给Dll,在这个Dll的OnClose中FreeLibrary,为什么会把我的主程序也结束掉了?
[/Quote]
LoadLibrary的句柄?这个可是代表DLL本身的!你的主程序结束了,肯定是访问异常,被系统给干掉了!LZ仔细理一理思路
pnmrbo 2011-08-16
  • 打赏
  • 举报
回复
我把LoadLibrary出来的Handle传给Dll,在这个Dll的OnClose中FreeLibrary,为什么会把我的主程序也结束掉了?
山东蓝鸟贵薪 2011-08-15
  • 打赏
  • 举报
回复
加载DLL
使用DLL
释放DLL

直接释放即可
Jekhn 2011-08-15
  • 打赏
  • 举报
回复
Dll里面有一个DLLProc的过程,DLL加载的时候会传入Dll_Process_attach的reason_id,卸载的时候会传入Dll_Process_detach,你就可以在detach的时候free你的form就可以了。
bzworinima 2011-08-15
  • 打赏
  • 举报
回复
另外发布一个函数,用来关闭这个FORM

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧