http://blog.csdn.net/hzqghost/article/details/2043028
1.Create Form => FromTest.pas {FromTest.dfm}
var
frmDLL: TfrmDLL;
procedure SynAPP(App:THandle);stdcall;
procedure ShowForm;stdcall;
implementation
uses Math,f2;
{$R * .dfm}
procedure SynAPP(App:THandle );stdcall;
begin
Application.Handle : = App;
end ;
procedure ShowForm;stdcall;
begin
try
frmDLL : = TfrmDLL.Create (Application);
finally
FreeAndNil(frmDLL);
end ;
end ;
frmDLL: TfrmDLL;
procedure SynAPP(App:THandle);stdcall;
procedure ShowForm;stdcall;
implementation
uses Math,f2;
{$R * .dfm}
procedure SynAPP(App:THandle );stdcall;
begin
Application.Handle : = App;
end ;
procedure ShowForm;stdcall;
begin
try
frmDLL : = TfrmDLL.Create (Application);
finally
FreeAndNil(frmDLL);
end ;
end ;
2.Create Dll向导 => FormDll.dpr
library FormDLL;
uses
SysUtils,
Classes,
Forms,
FormTest in ' FormTest .pas' {frmDll},
{$R * .res}
exports
SynAPP,ShowForm;
begin
end .
uses
SysUtils,
Classes,
Forms,
FormTest in ' FormTest .pas' {frmDll},
{$R * .res}
exports
SynAPP,ShowForm;
begin
end .
编译 FormDll.dpr 生成 FormDll.dll
3.在要调用的程序中
var
Form1: TForm1;
procedure SynAPP(App:THandle);stdcall;external ' FormDLL.dll';
procedure ShowForm;stdcall;external ' FormDLL.dll';
implementation
{$R * .dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SynAPP(Application.Handle);
ShowForm ;
end ;
Form1: TForm1;
procedure SynAPP(App:THandle);stdcall;external ' FormDLL.dll';
procedure ShowForm;stdcall;external ' FormDLL.dll';
implementation
{$R * .dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SynAPP(Application.Handle);
ShowForm ;
end ;