dll对窗体文件的制作与调用........急急(重金) ( 积分: 200 )

  • 主题发起人 主题发起人 ywj1997
  • 开始时间 开始时间
Y

ywj1997

Unregistered / Unconfirmed
GUEST, unregistred user!
首先创建一个DLL文件,把窗体文件A.B放入DLL中
然后做一个可执行文件调用这个DLL中的任意窗体文件显示出来
我要源码////////////////////
 
http://www.delphifans.com 里有很多这样的DLL实例,你去下载吧。
 
library Project1;

uses
ComServ,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};

exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;

{$R *.RES}

function InitDll:boolean; stdcall;
begin
try
Form1:=TForm1.Create(nil);
form2:=TForm2.Create(nil);
result:=true;
except
result:=false;
end;
end;

function ShowForm(const iForm:SmallInt):Boolean; stdcall;
begin
InitDll;
if iForm=0 then
form1.Show
else
form2.Show;
end;

exports
ShowForm;

begin

end.

调用

unit test;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TtestForm = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

function ShowForm(const iForm:SmallInt):Boolean; stdcall;external 'Project1.dll';

var
testForm: TtestForm;

implementation

{$R *.dfm}

procedure TtestForm.Button1Click(Sender: TObject);
begin
ShowForm(0);
end;

procedure TtestForm.Button2Click(Sender: TObject);
begin
ShowForm(1);
end;

end.
 
接受答案了.
 
后退
顶部