• 全部
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发
  • 问答

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

xrfei 2003-06-20 06:07:16
由于采用动态加载包含子FORM的DLL,当该子FORM关闭时,我给调用的主窗体发送一条消息,以便释放由LoadLibrary(dllName)语句所占用的内存。但如果用户没有关闭该子FORM,而直接关闭主调用程序,我是不是应该先释放子FORM所占用的空间,再释放LoadLibrary(dllName)语句所占用的内存?应该如何操作才好?
...全文
42 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
顶一下。
回复
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2003-06-20 06:07
社区公告
暂无公告