H
hdtnet
Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi 7+SQL Server 2000,一个MDI程序,我把每个MDI子窗体都做成了DLL,
然后主窗体调用各个DLL中的窗体,
接口函数为:
procedure showFORM(mainForm:TForm);stdcall;
var
ptrLongInt;
XPTJ: TXPTJ;
begin
ptr:=@(Application.MainForm);
ptr^:=LongInt(mainForm);
createmutex(nil,true,'XPTJ')
if getlasterror=0 then
begin
XPTJ:=TXPTJ.Create(mainForm);
end
else if getlasterror<>0 then
begin
//if not isnullid(xptj) then
//begin
freeandnil(xptj);
xptj:=txptj.Create(mainform);
//end;
end;
end;
点击第一次创建没问题,但创建了以后,即第二次点击执行getlasterror<>0中的代码
xptj:=txptj.Create(mainform)时,会触发形如下面的异常:
exception ereaderror in module *.dll at 00022557.
而帮助中提到ereaderror时解释为:
An EReadError exception may also be raised if a property cant be
read while creating a form. This can occur because a component reads the
form resource incorrectly, or because the resource is corrupt.
百思不得其解。
我想是窗体释放不当,大家可否给个的思路。或者我该怎么去做。
郁闷哪!!
帮帮我!!
然后主窗体调用各个DLL中的窗体,
接口函数为:
procedure showFORM(mainForm:TForm);stdcall;
var
ptrLongInt;
XPTJ: TXPTJ;
begin
ptr:=@(Application.MainForm);
ptr^:=LongInt(mainForm);
createmutex(nil,true,'XPTJ')
if getlasterror=0 then
begin
XPTJ:=TXPTJ.Create(mainForm);
end
else if getlasterror<>0 then
begin
//if not isnullid(xptj) then
//begin
freeandnil(xptj);
xptj:=txptj.Create(mainform);
//end;
end;
end;
点击第一次创建没问题,但创建了以后,即第二次点击执行getlasterror<>0中的代码
xptj:=txptj.Create(mainform)时,会触发形如下面的异常:
exception ereaderror in module *.dll at 00022557.
而帮助中提到ereaderror时解释为:
An EReadError exception may also be raised if a property cant be
read while creating a form. This can occur because a component reads the
form resource incorrectly, or because the resource is corrupt.
百思不得其解。
我想是窗体释放不当,大家可否给个的思路。或者我该怎么去做。
郁闷哪!!
帮帮我!!