明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

使用DLL完成通用密碼驗(yàn)證框

[摘要]---- 在我們編制Delphi應(yīng)用程序,常常需要提供一個(gè)密碼驗(yàn)證框,對(duì)應(yīng)用程序的使用者進(jìn)行身份核對(duì)。如果能有一個(gè)通用的密碼驗(yàn)證框,便能夠?yàn)槲覀兊墓ぷ鞴?jié)約不少的時(shí)間,更能使我們編制的程序小而快。以下的程序?yàn)槟闾峁┝诉@樣的一個(gè)DLL文件。 //文件名為CheckPasswordForm.dpr; ...
---- 在我們編制Delphi應(yīng)用程序,常常需要提供一個(gè)密碼驗(yàn)證框,對(duì)應(yīng)用程序的使用者進(jìn)行身份核對(duì)。如果能有一個(gè)通用的密碼驗(yàn)證框,便能夠?yàn)槲覀兊墓ぷ鞴?jié)約不少的時(shí)間,更能使我們編制的程序小而快。以下的程序?yàn)槟闾峁┝诉@樣的一個(gè)DLL文件。  

//文件名為CheckPasswordForm.dpr;
編譯此文件生成CheckPasswordForm.dll
    library CheckPasswordForm;

    uses
      XcqCheck in 'XcqCheck.pas' {XcqForm};

    exports
      CheckPassword name 'CheckPassword';//dll入口

    begin
    end.


    //文件名為XcqCheck.pas
    unit XcqCheck;

    interface

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

    type
      TXcqForm = class(TForm)
      XcqEdit: TMaskEdit;//密碼輸入框
      OkBtn: TButton;
      procedure OkBtnClick(Sender: TObject);
    end;

    var
      XcqForm: TXcqForm;
      Check: Boolean;//驗(yàn)證輸入密碼的正確性
      function CheckPassword: Boolean;export;
//本dll文件的關(guān)鍵實(shí)現(xiàn)

    implementation

    {$R *.DFM}

    procedure TXcqForm.OkBtnClick(Sender: TObject);
    begin
      if XcqEdit.Text = 'xcq' then
        Check := True;
      Close;
    end;

    function CheckPassword;export;
    begin
      Check := False;
      XcqForm := TXcqForm.Create(Application);
//創(chuàng)建密碼輸入框
      XcqForm.ShowModal;//顯示密碼輸入框;  
注意:不能用XcqForm.Show!
Result := Check;//返回給調(diào)用本dll的應(yīng)用程序判斷
XcqForm.Free;//釋放本dll文件所占資源
    end;
    end.

---- 在調(diào)用以上dll中CheckPassword函數(shù)的應(yīng)用程序中只需加入以下語(yǔ)句在implementation 后,function CheckPassword: Boolean; external 'CheckPasswordForm.dll' name 'CheckPassword';在需要進(jìn)行密碼驗(yàn)證的地方加入下面的條件語(yǔ)句就完全實(shí)現(xiàn)了密碼驗(yàn)證的功能。  
    if CheckPassword then  
    begin
      ...//如XcqQuery.Open;
    end;

---- 上面的程序只是一個(gè)簡(jiǎn)單的密碼驗(yàn)證框,我們可以將密碼以寫入注冊(cè)表或文件的方式保存,動(dòng)態(tài)修改,更可以利用算術(shù)算法對(duì)密碼進(jìn)行簡(jiǎn)單的加密等,使要保密的數(shù)據(jù)更安全。  
---- 其實(shí),上文中如何在dll中實(shí)現(xiàn)窗口讓我走了不少?gòu)澛,我覺得此法對(duì)大家更有意義,這是避免程序龐大的一種有效方法,不妨試試。