怎樣用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的簡單示例全部完成

發佈了28 篇原創文章 · 獲贊 6 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章