关于在delphi中Dll的创建和调用,象登陆界面一类,dll中有窗体,求例子。

解决方案 »

  1.   

    //dll中代码如下
    library Project1;uses
      SysUtils,
      Classes,
      Unit1 in 'Unit1.pas' {Form1};{$R *.res}procedure MyCreate;stdcall;
    begin
      Form1:= TForm1.Create(nil);
      Form1.Show;
      Form1.Update;
      Sleep(1000);
      Form1.Hide;
      Form1.Free;
    end;exports
      MyCreate;begin
    end.//exe中代码如下
    implementation
    procedure MyCreate;stdcall;external'e:\新建文件夹\project1.dll';{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      MyCreate;
    end;
      

  2.   

    发信人: naughtyboy (trlCode[0]+CtrlCode[1]+CtrlCode[2]+Ctrl), 信区: Delphi 标  题: Re: 谁能讲解一下DLL的制作吗? 发信站: 交大兵马俑BBS站 (2002年11月18日10:19:06 星期一), 站内信件   library MyLogon; uses   SysUtils,   Classes,   Logon in 'Logon.pas' {Logon_Form}; {$R *.res} exports    CheckPassword name 'CheckPassword'; begin end. unit Logon; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, AAFont, AACtrls, XPMenu, XP_Form, XP_Button, StdCtrls, ExtCtrls,   XP_CheckBox; type   TLogon_Form = class(TForm)     Logon_Form: TXP_Form;     XPMenu1: TXPMenu;     AALabel1: TAALabel;     AALabel2: TAALabel;     AAFadeText1: TAAFadeText;     Pass_Edit: TEdit;     UserID_Comb: TComboBox;     XP_Button1: TXP_Button;     XP_Button2: TXP_Button;     XP_Button3: TXP_Button;     XP_CheckBox1: TXP_CheckBox;     XP_Button4: TXP_Button;     procedure XP_Button1Click(Sender: TObject);     procedure Pass_EditKeyDown(Sender: TObject; var Key: Word;       Shift: TShiftState);     procedure XP_Button3Click(Sender: TObject);     procedure FormResize(Sender: TObject);     procedure XP_Button2Click(Sender: TObject);     procedure FormShow(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end; var   Logon_Form: TLogon_Form;   Check:Boolean;   XP_CheckState:Boolean;   function CheckPassword:Boolean;export; implementation {$R *.dfm} procedure TLogon_Form.XP_Button1Click(Sender: TObject); begin     if (UserID_Comb.Text='Lighten') and (Pass_Edit.Text='1') then         begin             Check:=True;             Close;         end     else         begin             ShowMessage('账号或者密码有误,请重新输入!');             Pass_Edit.Clear;             UserID_Comb.SetFocus;         end; end; function CheckPassword:Boolean;export; begin     Check:=False;     Logon_Form:=TLogon_Form.Create(Application);     Logon_Form.ShowModal;     Result:=Check;     Logon_Form.Free; end; procedure TLogon_Form.Pass_EditKeyDown(Sender: TObject; var Key: Word;   Shift: TShiftState); begin     if key=VK_RETURN then         XP_Button1Click(Sender); end; procedure TLogon_Form.XP_Button3Click(Sender: TObject); begin     Application.Terminate; end; procedure TLogon_Form.FormResize(Sender: TObject); begin     Logon_Form.Width:=400;     Logon_Form.Height:=250; end; procedure TLogon_Form.XP_Button2Click(Sender: TObject); begin     ShowMessage('Not Finished'); end; procedure TLogon_Form.FormShow(Sender: TObject); begin     UserID_Comb.SetFocus; end; end.