C
cnhotel
Unregistered / Unconfirmed
GUEST, unregistred user!
现在的问题是:主程序显式调用aa.dll,bb.dll.这两个dll原来均是独立的exe文件后来编译为dll,当调用的aa.dll和bb.dll模块(都是非模式窗体),均正常关闭时,主程序也可以正常关闭
但是当aa.dll和bb.dll均打开时(都是非模式窗体),直接关闭主程序,主程序会失去响应..应该是没有释放的原因吧.在主程序的ondestroy事件中写了如下语句,应该就是释放的吧?
if HandleCall<>0 then
begin
FreeLibrary(HandleCall);
HandleCall:=0;
end;
断点调试主程序时,就听在 FreeLibrary(HandleCall);这里不得下去了...失去响应
另看得一些demo中的dll事件中:
往往都是showdllform和freedllform两个过程配套用,我知道这两个的含义一个是显示、一个是释放,但是不知道如何在主程序端调用相应dll中的freedllform这个过程来释放..
比如如何在主程序端点击某个按钮时调用如下的函数呢?
function FreeCkForm(pHandle: THandle):boolean;
begin
Application.Handle:=pHandle;
if wlgl_main_f.Showing then
wlgl_main_f.Close;
if not wlgl_main_f.Showing then
begin
wlgl_main_f.Free;
result:=true;
end else
result:=false;
end;
菜鸟非科班出身,自学,看了大富翁的一些帖子仍不明白,希望各位大大们路过帮看下、帮顶下~~~~
但是当aa.dll和bb.dll均打开时(都是非模式窗体),直接关闭主程序,主程序会失去响应..应该是没有释放的原因吧.在主程序的ondestroy事件中写了如下语句,应该就是释放的吧?
if HandleCall<>0 then
begin
FreeLibrary(HandleCall);
HandleCall:=0;
end;
断点调试主程序时,就听在 FreeLibrary(HandleCall);这里不得下去了...失去响应
另看得一些demo中的dll事件中:
往往都是showdllform和freedllform两个过程配套用,我知道这两个的含义一个是显示、一个是释放,但是不知道如何在主程序端调用相应dll中的freedllform这个过程来释放..
比如如何在主程序端点击某个按钮时调用如下的函数呢?
function FreeCkForm(pHandle: THandle):boolean;
begin
Application.Handle:=pHandle;
if wlgl_main_f.Showing then
wlgl_main_f.Close;
if not wlgl_main_f.Showing then
begin
wlgl_main_f.Free;
result:=true;
end else
result:=false;
end;
菜鸟非科班出身,自学,看了大富翁的一些帖子仍不明白,希望各位大大们路过帮看下、帮顶下~~~~