程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第十章-動態鏈接庫編程(二)(4)

第十章-動態鏈接庫編程(二)(4)

編輯:Delphi

10.4.2.2 Delphi應用程序調用重用窗體 

在Delphi應用程序中調用重用窗體,首先必須包含passform.dll的兩個輸出函數: 

function GetPassword(Password: PChar): Boolean;

far; external 'c:\dlls\PassForm';

function SetPassword(PassWord: PChar): Boolean;

far; external 'c:\dlls\PassForm';

這位於程序單元的implementation部分。

口令設置部分的實現代碼為: 

procedure TForm1.SetButtonClick(Sender: TObject);

begin

PassWord := StrAlloc(40);

if SetPassWord(PassWord) = False then

MessageDlg('PassWord is not set',mtInformation,[mbOK],0);

end;

首先為口令字符串分配內存。當口令設置窗體按Cancel按鈕取消時,顯示相應的信息。

口令檢查部分的實現代碼為: 

procedure TForm1.TestButtonClick(Sender: TObject);

begin

if PassWord = nil then

begin

MessageDlg('Set password first', mtInformation, [mbOK], 0);

SetButton.SetFocus;

Exit;

end;

if GetPassword(PassWord) then

Label1.Caption := 'You are Wellcome !'

else

Label1.Caption := 'Sorry,You are InValid User.';

end;

根據口令檢查的結果,在標簽框中顯示相應的信息。 

10.4.2.3 VB應用程序調用重用窗體 

VB是微軟公司極力推薦的一個可視化開發工具。它雖然並不支持動態鏈接庫的創建,但可以調用標准的Windows API動態鏈接庫和用其它語言編寫的動態鏈接庫。為了驗證所生成DLLs的普適性,我們用VB開發了一個簡單的程序來調用passform.dll中儲存的窗體。

下面是VB程序的完整代碼,和Delphi程序的對應部分基本一致。 

Option Explicit

Declare Function GetPassWord Lib "c:\dlls\passform.dll" (ByVal PassWord As String) As Integer

Declare Function SetPassWord Lib "c:\dlls\passform.dll" (ByVal PassWord As String) As Integer 

Dim PassWord As String * 40

Sub Check_Click ()

If PassWord = "" Then

MsgBox ("Enter sample password first")

SetPass.SetFocus

Else

If GetPassWord(PassWord) Then

StatusLbl.Caption = "You are Welcome!"

Else

StatusLbl.Caption = "Sorry,You are Invalid User."

End If

End If

End Sub

Sub SetPass_Click ()

If SetPassWord(PassWord) = 0 Then

MsgBox ("PassWord is not Set.")

End If

End Sub

有關VB編程的一些具體問題,讀者可參看有關的VB參考書。 

10.4.3 小結 

本章我們討論的是動態鏈接庫編程。許多可視化開發工具(如Visual Basic)不支持 DLLs的創建,而Delphi在這裡又有上乘的表現。特別是窗體重用機制是Delphi對Windows下DLLs編程的一個重大改進。在一般的DLLs編程中也體現了Delphi快捷、方便的特點。動態鏈接庫是 Windows下程序組織的一種重要方式,使用動態鏈接庫可以極大地保護用戶在不同開發工具、不同時期所做的工作。利用動態鏈接庫,用戶可以逐步去構築自己的程序模塊庫,為今後的工作積累素材。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved