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