关于调用dll中的模式窗体,在关闭时出现内存错误的问题.(100分)

  • 主题发起人 主题发起人 adtld
  • 开始时间 开始时间
A

adtld

Unregistered / Unconfirmed
GUEST, unregistred user!
关于调用dll中的模式窗体,在关闭时出现内存错误的问题.
可能的话请帮忙介绍一下,将窗体制做dll的方法(delphi6).
 
function showform(ahandle:THandle):longint;
var
dllform:tllform;
begin
application.handle:=ahandle;
dllform:=tdllform.create(application);
try
dllform.showmodal;
//result:=...
finaly
dllform.free;//DLL创建的窗体必须由DLL释放
dllform:=nil;//设为空
end;
end;
为使DLL中的窗体真正成为应用程序模式窗体,必须将应用程序的句柄赋给DLL的
Application.Handle属性,正如上面代码所述。要是不这样做,
结果难以预料,尤其是当想最小化该DLL的窗体时,
必须确保赋给Application.Handle属性的AHandle值不为nil

普通窗体制成DLL,只要新建一个DLL工程,并加入窗体单元,然后引出一个函数,
当然,这个函数要自己写,像上面那个一样,注意,最好不要传递和返回string类型的
值,而用PChar代替,会省掉些麻烦.
 
感谢ysai的回答我试一试.
 
阿朱有一篇制作DLL的文章,自己查吧,我就不帖了
 
跟着问一个:

为什么用string 会出错,而且这个错误的不一定会发生。
 
to ysai
你给的代码和我原来的代码差不多,所以还是老问题.
to 阿牛
谢谢你的回答,能不能详细一点.
 
http://www.delphibbs.com/delphibbs/dispq.asp?LID=0534762
 
To adtld
把你的代码发过来
 
多人接受答案了。
 
后退
顶部