-
動態連結
鎖定
- 中文名
- 動態連接
- 外文名
- Dynamic Linking
動態連結基本概述
Windows運作機制的核心是一個稱作「動態連結」的概念。Windows提供了應用程式豐富的可呼叫函式,大多數用於在使用者介面和在視訊顯示器上顯示文字和圖形。這些函式採用動態連結程式庫(Dynamic Linking Library,DLL)的方式撰寫。這些動態連結程式庫是些具有.DLL或者有時是.EXE副檔名的檔案,在Windows 98中通常位於\WINDOWS\SYSTEM子目錄中,在Windows NT中通常位於 \WINNT\SYSTEM和\WINNT\SYSTEM32子目錄中。
動態連結動態連結程式庫
在早期,Windows的主要部分僅通過三個動態連結程式庫實作。這代表了Windows的三個主要子系統,它們被稱作Kernel、User和GDI。當子系統的數目在Windows最近版本中增多時,大多數典型的Windows程式產生的函式呼叫仍對應到這三個模組之一。Kernel(日前由16位元的KRNL386.EXE和32位元的KERNEL32.DLL實現)處理所有在傳統上由作業系統核心處理的事務-記憶體管理、檔案I/O和多工管理。User(由16位的USER.EXE和32位的USER32.DLL實作)指使用者介面,實作所有視窗運作機制。GDI(由16位的GDI.EXE和32位的GDI32.DLL實作)是一個圖形裝置介面,允許程式在螢幕和印表機上顯示文字和圖形。
Windows 98支援應用程式可使用的上千種函式呼叫。每個函數都有一個描述名稱,例如CreateWindow。該函數(如您所猜想的)為程式建立新視窗。所有應用程式可以使用的Windows函式都在表頭檔案裏預先宣告過。
動態連結函式方式
在Windows程式中,使用Windows函式的方式通常與使用如strlen等C語言程式庫函式的方式相同。主要的區別在於C語言程式庫函式的機械碼連結到您的程式碼中,而Windows函式的程式碼在您程式執行檔外的DLL中。
當您執行Windows程式時,它通過一個稱作「動態連結」的過程與Windows相接。一個Windows的 .EXE檔案中有使用到的不同動態連結程式庫的參考資料,所使用的函式即在那些動態連結程式庫中。當Windows程式被載入到記憶體中時,程式中的呼叫被指向DLL函式的入口。如果該DLL不在記憶體中,就把它載入到記憶體中。
當您連結Windows程式以產生一個可執行檔案時,您必須連結程式開發環境提供的特定「引用程式庫(import library)」。這些引用程式庫包含了動態連結程式庫名稱和所有Windows函式呼叫的引用資訊。連結程式使用該資訊在.EXE檔案中建立一個表格,在載入程式時,Windows使用它將呼叫轉換為Windows函式。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:12次歷史版本
- 最近更新: 文文20190902