在DLL里输出一个函数,如proceduer MyForm1Show;stdcall;
begin
  if not Assigned(MyForm1) then MyForm1:=TMyForm1.Create(nil);
  MyForm1.Show;//ShowModal
end;exports
  MyForm1Show;//注意:释放内存空间问题

解决方案 »

  1.   

    好象没什么特别的
    调用DLL中的MDI窗体到是问题很多。
      

  2.   


    我的例子是模态的在dll中窗体的单元,定义输出函数。
    .....
    var
      Form1: TForm1;
    procedure ShowForm1;export;stdcall;implementation
    {$R *.DFM}procedure ShowForm1;
    begin
      Form1 := TForm1.Create(nil);
      try
        Form1.ShowModal;
      finally
        Form1.Free;
      end;
    end;{ TForm1 }....dll的输出函数的定义:library test;uses
      SysUtils,
      Classes,
      Unt_Form1 in 'Unt_Form1.pas' {Form1},
      Unt_Form2 in 'Unt_Form2.pas' {Form2},
      dynicload in 'unt_dynicload.pas';{$R *.RES}
    exports
      ShowForm1, ShowForm2;
    begin
    end.delphi的dll装载,有静态的,和动态的。
    你还是去看书吧。
    dephi开发dll很方便的。使用也方便。注意的是pascal传参顺序和系统传参顺序不一样,dll输出函数要加上stdcall;关键字。