1. 程式人生 > >怎樣用VB編寫.DLL動態連結庫檔案

怎樣用VB編寫.DLL動態連結庫檔案

一、名詞解釋:
DLL 的學名叫 動態連結庫
二、它是幹什麼用的:
搜尋一下有很完整詳細的解釋。這裡,我只引用過來當中的一句話
“在Windows中,許多應用程式並不是一個完整的可執行檔案,它們被分割成一些相對獨立的動態連結庫,即DLL檔案,放置於系統中。當我們執行某一個程式時,相應的DLL檔案就會被呼叫。”
三、製作自己的dll:
使用dll的意義
(以下來自MSDN)
節省記憶體和減少交換操作。很多程序可以同時使用一個 DLL,在記憶體中共享該 DLL 的一個副本。相反,對於每個用靜態連結庫生成的應用程式,Windows 必須在記憶體中載入庫程式碼的一個副本。
節省磁碟空間。許多應用程式可在磁碟上共享 DLL 的一個副本。相反,每個用靜態連結庫生成的應用程式均具有作為單獨的副本連結到其可執行影象中的庫程式碼。
升級到 DLL 更為容易。當 DLL 中的函式

發生更改時,只要函式的引數和返回值沒有更改,就不需重新編譯或重新連結使用它們的應用程式。相反,靜態連結的物件程式碼要求在函式更改時重新連結應用程式。
提供售後支援。例如,可修改顯示器驅動程式 DLL 以支援當初交付應用程式時不可用的顯示器。
支援多語言程式。只要程式遵循函式的呼叫約定,用不同程式語言編寫的程式就可以呼叫相同的 DLL 函式。程式與 DLL 函式在下列方面必須是相容的:函式期望其引數被推送到堆疊上的順序,是函式還是應用程式負責清理堆疊,以及暫存器中是否傳遞了任何引數。
提供了擴充套件 MFC 庫類的機制。可以從現有 MFC 類派生類,並將它們放到 MFC 擴充套件 DLL 中供 MFC 應用程式使用。
使國際版本的建立輕鬆完成。通過將資源放到 DLL 中,建立應用程式的國際版本變得容易得多。可將用於應用程式的每個語言版本的字串放到單獨的 DLL 資原始檔中,並使不同的語言版本載入合適的資源。
特別指出一點,對於excel來說,dll還有一個重要的意義,程式碼的安全性基本得到了保障。都說破解vba
密碼是一秒鐘的事兒,破解dll可不是那麼容易的事兒了。
四、自己製作dll
我們用VB6.0製作dll

1、(本帖裡)圖1 就是vb6.0在桌面的圖示,雙擊它
2、彈出視窗後,先選擇ActiveX DLL(圖2的紅框),再點選開啟(圖2的藍框)
3、起個名字(圖3藍色框內文字改為 ABC)
4、先儲存一下,桌面新建個資料夾,點選圖3紅框裡的儲存標誌,彈出另存為對話方塊,選擇桌面》雙擊剛剛建立的那個資料夾(圖4藍色框)》儲存(圖4紅色框)》儲存
5、寫程式碼,模組裡輸入下面程式碼
Sub def()
  Dim EL As Object
  Set EL = GetObject(, "Excel.Application")
  With EL.ActiveSheet
     .Cells(1, 3) = .Cells(1, 1) & .Cells(1, 2)
  End With
  Set EL = Nothing
End Sub
(如圖5所示)
6、點選檔案(圖5紅色框),在出現的下拉選單中點選 生成工程1.dll(k)...》(預設儲存位置)點選確定
至此,Dll就製作完成了

四、使用dll
1、新建一個excel,A1單元格輸入"你",B1單元格輸入"好"
2、開啟VBE,工具》引用》瀏覽》找到剛剛建立的資料夾 點選工程1.dll(圖6)》點選開啟》點選確定
3、插入一個模組,輸入下面程式碼
Sub test()
    Dim a As New ABC
    a.def
    Set a = Nothing
End Sub
4、執行一下程式碼,C1單元格出現"你好"
至此,一個由製作到使用dll的簡單示例全部完成