关于DLL的一个问题!

jiangqiu 2003-08-30 04:30:11
我要在主程序中调用一个DLL中的子窗体,但当我释放DLL(FreeLibrary(DLL))时子窗体没有被销毁,我觉得当DLL被释放的时候,子窗体的就应该自动析构了。难道是我使用释放函数中的参数不对,还是另有原因,希望高手解答!
...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Spacesoft 2003-09-03
  • 打赏
  • 举报
回复
9494, 同意楼上的。
cmain83 2003-09-02
  • 打赏
  • 举报
回复
看来你对DLL还不怎么了解...

如果你没有编写DLL的释放函数, DLL释放时就没有释放函数可以用来执行.
当然就没有释放窗体了.
窗体的释放要自己编写的.

DLL释放函数:
在DLL文件的
Begin
..
end;
之间加入
DllProc := @DLLEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);

上边的DLLEntryPoint是一个过程.
该过程必须进行声明和实现. 并用传入一个DWORD参数:

procedure DLLEntryPoint(dwReason: DOWRD);
begin
if dwReason = DLL_PROCESS_ATTACH then //如果的释放
begin
{你的释放代码}
end;
end;

把上边的函数过程放到DLL的
Begin 前面即可
Eastunfail 2003-08-30
  • 打赏
  • 举报
回复
大个比喻:一个人在晚上走的非常好的时候,突然楼上掉下一块预制板。他死了。但是他无法理解发生了什么事情。
ZyxIp 2003-08-30
  • 打赏
  • 举报
回复
给你了一个列子,请查收。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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