往DLL动态库函数传送对象时出错
往DLL动态库函数传送对象时出错
在一个DLL项目中申明以下函数,这样对吗?
function fBool_ExistMDIForm(MainForm,MDIForm:TForm):Boolean;stdcall;
//MainForm为MDI主表单,MDIForm为MDI子表单
var
i:Integer;
begin
i:=0;
while i<MainForm.MDIChildCount do
begin
begin
if MainForm.MDIChildren[i].Name=MDIForm.Name then
break //如果找着同名的子表单则程序退出循环
else
i:=i+1;
end;
end;
if MainForm.MDIChildren[i].Name=MDIForm.Name then
Result:=True //找到同名的表单返回真,否则退回假
else
Result:=False;
end;
调用方式在MDI子表单的OnActivate代码中调用,Form1是MDI主表单名
if fBool_ExistMDIForm(Form1,self) then
begin
showmessage('已经运行了一个实例');
end;
程序在运行时报错 Access violation at address 00281f0e in modul 'XXXXXX.DLL'. Read of address 00000008