Delphi中动态调用DLL中的窗体

  

DLL链接库代码

图书馆Project1;
  使用
  的形式,
  第一在第一。不是' {Form1};
  函数ShowForm (AHandle: THandle):布尔;StdCall;
  var
  AForm: TForm1;
  开始
  结果:=False;
  Application.Handle:=AHandle;
  AForm:=TForm1.Create(应用程序);
  试一试
  AForm.ShowModal;
  结果:=True;
  最后
  AForm.Free;
  结束;
  结束;
  {$ R * R}
  出口
  ShowForm;
  开始
  结束。

,

形式中调用代码

单元Unit2;
  接口
  使用
  窗户、消息、SysUtils变异、类、图形、控制形式,
  对话框,StdCtrls;
  类型
  TForm1=类(TForm)
  Button1: TButton;
  过程Button1Click(发送者:TObject);
  过程FormCreate(发送者:TObject);
  私人
  {私人声明}
  公共
  {公开声明}
  结束;
  TShowForm=函数(AHandle: THandle):布尔;Stdcall;//001
  var
  Form1: TForm1;
  实现
  {$ R * .dfm}
  过程TForm1。Button1Click(发送方:TObject);
  var mainfrm, DllForm: THandle;//002
  ShowForm: TShowForm;//003
  开始
  mainfrm:=Form1.Handle;//004
  DllForm:=LoadLibrary (“hello.dll”);//005
  试一试
  开始
  如果DllForm<在0
  开始
  @ShowForm:=GetProcAddress (DllForm ShowForm);
  ShowForm (mainfrm);
  结束
  其他的
  开始
  RaiseLastWin32Error;
  结束;
  结束;
  最后
  FreeLibrary (DllForm);
  结束;
  结束;
  过程TForm1。FormCreate(发送方:TObject);
  开始
  结束;
  结束。

,

Delphi中动态调用DLL中的窗体