D
d村长
Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个动态链接库中创建了一个窗体,并用下面的方法在主程序中调用,第一次调用成功后,不关闭窗体,再重复调用一次,想让主程序从DLL中调出两个相同的窗口,程序就报错,下面给出原码,请高手帮忙解答一下.<br>DLL中的窗示窗口:<br>function show_form(AHandle: THandle; ACaption: String):BOOL;<br><br>begin<br><br><br><br> Application.Handle := AHandle;<br> Formt := TFormt.Create(Application);<br> try<br> Formt.Caption := ACaption;<br> Formt.Show ;<br> Result := False;<br> finally<br> Formt.Free;<br> end;<br>end;<br>主程序的调用:<br><br>procedure TForm1.IP1Click(Sender: TObject);<br>var //按钮的调用事件:调用过程<br>LibHandle: THandle;<br>show_form:tshow_form;<br>begin<br> Application.Title:='IP';<br> LibHandle := LoadLibrary('view.DLL');<br> try<br> if LibHandle = 0 then<br> raise EDLLLoadError.Create('无法成功装入指定模块,或系统发生未知错误!)');<br> @show_form := GetProcAddress(LibHandle, 'show_form');<br> if not (@show_form = nil) then<br> begin<br> show_form(Application.Handle,Application.Title) ;<br> end<br> else<br> RaiseLastWin32Error;<br> finally<br> FreeLibrary(LibHandle);<br> end;<br>end;<br>///////<br><br><br><br>我的目的就是同时能成功的调用DLL中的窗体很多次~~而不发生错误~