动态加载DLL(包含子FORM)的问题

xrfei 2003-06-20 06:07:16
由于采用动态加载包含子FORM的DLL,当该子FORM关闭时,我给调用的主窗体发送一条消息,以便释放由LoadLibrary(dllName)语句所占用的内存。但如果用户没有关闭该子FORM,而直接关闭主调用程序,我是不是应该先释放子FORM所占用的空间,再释放LoadLibrary(dllName)语句所占用的内存?应该如何操作才好?
...全文
76 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxd 2003-06-22
  • 打赏
  • 举报
回复
可循环调用this->MDIChildren[index]->Close(),关闭所有的Form,再释放dll
alenwelkin 2003-06-21
  • 打赏
  • 举报
回复
你的想法是正确的
ThinkX 2003-06-21
  • 打赏
  • 举报
回复
采用对DLL资源的引用计数。
wangxiangsjz 2003-06-21
  • 打赏
  • 举报
回复
fishtailer() 的办法可行。
xrfei 2003-06-21
  • 打赏
  • 举报
回复
fishtailer() 你好!
现在我要达到这样一个功能,就是各功能子模块都用DLL开发,在主FORM中调用.这样能全采用ShowModal的方式显示吗?如果一个DLL中不止包含一个子FORM呢?该怎么办?
pp616 2003-06-21
  • 打赏
  • 举报
回复
呵呵。
fishtailer 2003-06-20
  • 打赏
  • 举报
回复
楼主的思路正确啊,的确要先释放dll中的Form,再释放dll;
一般dll中的Form用ShowModal显示,这样就要先关闭该Form;
当然可循环调用this->MDIChildren[index]->Close(),关闭所有的Form,再释放dll;
wangxiangsjz 2003-06-20
  • 打赏
  • 举报
回复
楼上,如果DLL中是MDIChildForm,就不能用ShowModule。
烟灰 2003-06-20
  • 打赏
  • 举报
回复
这个我做过很多次了,
在 DLL 中写一个显示 DLL 窗体的函数,一定要用 showmodule 方法,这样,DLL中的窗体
就会显示在主程序的上面,只要 DLL 的窗体退出,就在 DLL 中将此窗体 FREE 掉,同时
就可以 freelibray (dllname ) 了,这样不会有错的
xrfei 2003-06-20
  • 打赏
  • 举报
回复
顶一下。

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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