《動態連結程式庫(DLL)》
簡介
動態連結程式庫(Dynamic-Link Library, DLL) 是具有函式功能的可執行檔。動態連結可以讓一個程序 (Process) 呼叫本身程式碼以外的函式,而不必將該函式程式碼納入該程序之程式碼中,提供了一個彈性化的外部函式庫。
DLL的內容
DLL主要包含了一個或數個函式的程式碼,可以編譯成一個額外的檔案儲存在與主程式不同的位置,主程式上的Process只要對應DLL內的函式進行呼叫,就可以使用儲存在DLL上的函式。
與靜態連結(Static Link)的不同在靜態連結中,連結器 (Linker) 會從靜態連結程式庫取得所有參考函式,並在編譯後的連結程序將其函式放入執行檔,並且讓執行檔體積增大。
使用DLL的優點
1. 程式碼模組化
DLL可以將部份程式碼以函式的方式適當地模組化,執行期間再動態載入執行。
2. 節省記憶體和降低交換(Swapping)
許多Process可以同時使用單一 DLL 來共用記憶體裡 DLL 的單一複本(Copy)。而使用使用靜態連結的程式,必須將程式庫碼的複本載入記憶體。
3. 節省磁碟空間
許多應用程式可以共用磁碟上的單一 DLL 複本,意味著相同的函式我們只需要在DLL放一份即可。而使用靜態連結程式的程式,會將程式庫碼以不同的複本連結至其執行檔。
4. 升級與修改較為容易
當 DLL 的函式變更時,只要函式的引數和回傳值沒有改變,使用這些函式的應用程式就不需要重新編譯或重新連結。在使用靜態連結時則必須重新連結(link)應用程式。
5. 結合多種程式語言之程式碼
當我們需要呼叫其他語言所製作的函式時,我們也可以利用DLL來達成,例如我們在使用VS需要呼叫一些Basic語言的函式,我們就可以先將Basic語言的部份做成DLL檔,再把呼叫DLL的程式碼寫在VB裡面,這樣就可以將Basic語言的程式納進VS的程式中。
簡介
動態連結程式庫(Dynamic-Link Library, DLL) 是具有函式功能的可執行檔。動態連結可以讓一個程序 (Process) 呼叫本身程式碼以外的函式,而不必將該函式程式碼納入該程序之程式碼中,提供了一個彈性化的外部函式庫。
DLL的內容
DLL主要包含了一個或數個函式的程式碼,可以編譯成一個額外的檔案儲存在與主程式不同的位置,主程式上的Process只要對應DLL內的函式進行呼叫,就可以使用儲存在DLL上的函式。
與靜態連結(Static Link)的不同在靜態連結中,連結器 (Linker) 會從靜態連結程式庫取得所有參考函式,並在編譯後的連結程序將其函式放入執行檔,並且讓執行檔體積增大。
使用DLL的優點
1. 程式碼模組化
DLL可以將部份程式碼以函式的方式適當地模組化,執行期間再動態載入執行。
2. 節省記憶體和降低交換(Swapping)
許多Process可以同時使用單一 DLL 來共用記憶體裡 DLL 的單一複本(Copy)。而使用使用靜態連結的程式,必須將程式庫碼的複本載入記憶體。
3. 節省磁碟空間
許多應用程式可以共用磁碟上的單一 DLL 複本,意味著相同的函式我們只需要在DLL放一份即可。而使用靜態連結程式的程式,會將程式庫碼以不同的複本連結至其執行檔。
4. 升級與修改較為容易
當 DLL 的函式變更時,只要函式的引數和回傳值沒有改變,使用這些函式的應用程式就不需要重新編譯或重新連結。在使用靜態連結時則必須重新連結(link)應用程式。
5. 結合多種程式語言之程式碼
當我們需要呼叫其他語言所製作的函式時,我們也可以利用DLL來達成,例如我們在使用VS需要呼叫一些Basic語言的函式,我們就可以先將Basic語言的部份做成DLL檔,再把呼叫DLL的程式碼寫在VB裡面,這樣就可以將Basic語言的程式納進VS的程式中。
《動態連結程式庫(DLL)》用來在網際網路上交女朋友:
1. 程式碼模組化
方使媒人婆在各地把我私人秘密資料模組化,動態載入執行。
2. 節省記憶體和降低交換(Swapping)
現代人簡化程式碼放在手提電話 App 中應用,節省記憶體和降低交換時間。
3. 節省磁碟空間
手提電話節省 Mine SD 卡位置。
4. 升級與修改較為容易
增加多一頭豬,一隻金飾,和拾万美元,這時修改 DLL 較為容易。
5. 結合多種程式語言之程式碼
無論任何程式語言:
一、FORTRAN
二、COBOL
三、BASIC
四、PASCAL
五、C、 C++
六、JAVA
這樣我就保護自己私隱(七十二歲還未有女友!)省媒人婆金錢時間,不佔太多手提電話Mine SD 卡位置,增加彩禮金可即時改口快,方便各國各行人種不同環境語言(可謂保密快靚正。)
如下是 ClassLibrary1.Class1 程式語言內文:
Public Class Class1
Public Function My_Name(str As Object) As String
Dim str_Name As String = "Sex性別: Male男性;Name名字: Zebu小寶 ; Age年歲: 72"
Return str_Name
End Function
Public Function My_TelphoneNo(str As Object) As String
Dim str_TelphoneNo As String = "12345678"
Return str_TelphoneNo
End Function
Public Function My_HomeWork(str As Object) As String
Dim str_HomeWork As String = "I an a 〔Cloudy〕我是一隻「雲端」"
Return str_HomeWork
End Function
End Class
如下是 WindowsApp1.Form1 程式語言內文:
Imports ClassLibrary1.Class1
Public Class Form1
Dim class1 As New ClassLibrary1.Class1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim str = class1.My_Name(Nothing).ToString
Me.TextBox1.Text = str.ToString
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim str = class1.My_TelphoneNo(Nothing).ToString
Me.TextBox2.Text = "TelNo電話號碼: " & str.ToString
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim str = class1.My_HomeWork(Nothing).ToString
Me.TextBox3.Text = "HomeWork家居工作: " & str.ToString
End Sub
End Class
影音介紹:
Top Secret! (6/9) Movie CLIP - Backwards Bookstore (1984) HD
https://www.youtube.com/watch?v=uuYTVl0iOkk&t=1s
各位觀眾,好戲陸續有來。
創作日期:星期四 2022年六月9日 下午 08:20:04

沒有留言:
張貼留言