file dllpassword.pas -------------------- library DllPassWord; uses uGetPassWd in 'uGetPassWd.pas' {frmTestPassWord}, uSetPassWd in 'uSetPassWd.pas' {frmSetPassWord};{$R *.res} exports TestPassword,SetPassWord; beginend.file uGetPassWd.pas --------------------------- unit uGetPassWd;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;type TfrmTestPassWord = class(TForm) BitBtn1: TBitBtn; Edit1: TEdit; private { Private declarations } public { Public declarations } end; function TestPassword(Password: PChar): Boolean; implementation{$R *.dfm} function TestPassword(Password: PChar): Boolean; var frmTestPassWord:TfrmTestPassWord; begin frmTestPassWord:=tfrmTestPassWord.Create(nil); result:=false; with frmTestPassWord do try showmodal; if password<>UpperCase(edit1.Text) then messagedlg('Password is fault!',mtwarning,[mbok],0) else result:=true; finally frmTestPassWord.Free; end; end;end.file uSetPassWd ------------------------ unit uSetPassWd;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;type TfrmSetPassWord = class(TForm) Label1: TLabel; Edit1: TEdit; btnOk: TBitBtn; BitBtn2: TBitBtn; procedure FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); procedure FormCreate(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private Vertify:boolean; public PassWord:pchar; end; function SetPassWord(aPassword: PChar):boolean; implementation{$R *.dfm} function SetPassWord(aPassword: PChar):boolean; var frmSetPassWord : TfrmSetPassWord; begin result:=false; frmSetPassWord:=tfrmSetPassWord.Create(nil); with frmSetPassWord do begin if showmodal=mrok then begin result:=true; StrCopy(aPassword,StrUpper(Password)); end; end; end;procedure TfrmSetPassWord.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); begin resize:=false; end;procedure TfrmSetPassWord.FormCreate(Sender: TObject); begin passWord:=stralloc(40); vertify:=false; label1.Caption:='Please enter the password.'; end;procedure TfrmSetPassWord.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if not vertify then begin vertify:=true; edit1.Text:=''; label1.Caption:='Please vertify the password.'; //重复密码 strpcopy(password,UpperCase(edit1.Text)); edit1.SetFocus; end else begin if strpas(password)<>UpperCase(edit1.Text) then begin vertify:=false; edit1.Text:=''; label1.Caption:='Please enter the password.'; edit1.SetFocus; end else begin btnok.Enabled:=true; btnok.SetFocus; edit1.Enabled:=false; end; end; key:=#0; end; end;end.------------------------------ 开始调用 file uMain.pas ----------------------------- unit uMain;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) btSetPassWord: TButton; btTestPassWord: TButton; Edit1: TEdit; procedure btSetPassWordClick(Sender: TObject); procedure btTestPassWordClick(Sender: TObject); private password:pchar; public { Public declarations } end;var Form1: TForm1;
function SetPassword(aPassword: PChar): Boolean;stdcall;external 'DllPassWord.dll'; function TestPassword(Password: PChar): Boolean;stdcall;external 'DllPassWord.dll';implementation{$R *.dfm}procedure TForm1.btSetPassWordClick(Sender: TObject); begin setpassword(password); end;procedure TForm1.btTestPassWordClick(Sender: TObject); begin testpassword(strpcopy(password,edit1.Text)); end;end. ----------------------------------------------- 大家帮帮忙看看把。
--------------------
library DllPassWord;
uses
uGetPassWd in 'uGetPassWd.pas' {frmTestPassWord},
uSetPassWd in 'uSetPassWd.pas' {frmSetPassWord};{$R *.res}
exports
TestPassword,SetPassWord;
beginend.file uGetPassWd.pas
---------------------------
unit uGetPassWd;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;type
TfrmTestPassWord = class(TForm)
BitBtn1: TBitBtn;
Edit1: TEdit;
private
{ Private declarations }
public
{ Public declarations }
end;
function TestPassword(Password: PChar): Boolean;
implementation{$R *.dfm}
function TestPassword(Password: PChar): Boolean;
var frmTestPassWord:TfrmTestPassWord;
begin
frmTestPassWord:=tfrmTestPassWord.Create(nil);
result:=false;
with frmTestPassWord do
try
showmodal;
if password<>UpperCase(edit1.Text) then
messagedlg('Password is fault!',mtwarning,[mbok],0)
else
result:=true;
finally
frmTestPassWord.Free;
end;
end;end.file uSetPassWd
------------------------
unit uSetPassWd;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;type
TfrmSetPassWord = class(TForm)
Label1: TLabel;
Edit1: TEdit;
btnOk: TBitBtn;
BitBtn2: TBitBtn;
procedure FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
procedure FormCreate(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
Vertify:boolean;
public
PassWord:pchar;
end;
function SetPassWord(aPassword: PChar):boolean;
implementation{$R *.dfm}
function SetPassWord(aPassword: PChar):boolean;
var frmSetPassWord : TfrmSetPassWord;
begin
result:=false;
frmSetPassWord:=tfrmSetPassWord.Create(nil);
with frmSetPassWord do begin
if showmodal=mrok then begin
result:=true;
StrCopy(aPassword,StrUpper(Password));
end;
end;
end;procedure TfrmSetPassWord.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
resize:=false;
end;procedure TfrmSetPassWord.FormCreate(Sender: TObject);
begin
passWord:=stralloc(40);
vertify:=false;
label1.Caption:='Please enter the password.';
end;procedure TfrmSetPassWord.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if not vertify then begin
vertify:=true;
edit1.Text:='';
label1.Caption:='Please vertify the password.'; //重复密码
strpcopy(password,UpperCase(edit1.Text));
edit1.SetFocus;
end
else begin
if strpas(password)<>UpperCase(edit1.Text) then begin
vertify:=false;
edit1.Text:='';
label1.Caption:='Please enter the password.';
edit1.SetFocus;
end
else begin
btnok.Enabled:=true;
btnok.SetFocus;
edit1.Enabled:=false;
end;
end;
key:=#0;
end;
end;end.------------------------------
开始调用
file uMain.pas
-----------------------------
unit uMain;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
btSetPassWord: TButton;
btTestPassWord: TButton;
Edit1: TEdit;
procedure btSetPassWordClick(Sender: TObject);
procedure btTestPassWordClick(Sender: TObject);
private
password:pchar;
public
{ Public declarations }
end;var
Form1: TForm1;
function SetPassword(aPassword: PChar): Boolean;stdcall;external 'DllPassWord.dll';
function TestPassword(Password: PChar): Boolean;stdcall;external 'DllPassWord.dll';implementation{$R *.dfm}procedure TForm1.btSetPassWordClick(Sender: TObject);
begin
setpassword(password);
end;procedure TForm1.btTestPassWordClick(Sender: TObject);
begin
testpassword(strpcopy(password,edit1.Text));
end;end.
-----------------------------------------------
大家帮帮忙看看把。
TestPassword,SetPassWord;function SetPassword(aPassword: PChar): Boolean;stdcall;external 'DllPassWord.dll';
function TestPassword(Password: PChar): Boolean;stdcall;external 'DllPassWord.dll';SetPassword大小写要保持一致。
不过我很奇怪,DELPHI不是不区分大小写的嘛!
怎么到了DLL就要区分啦,奇怪。