動態連結

動態連線(Dynamic Linking)是Windows運作機制中的一個核心機制。Windows提供了套用程式豐富的可呼叫函式,採用動態連結程式庫(Dynamic Linking Library,DLL)的方式撰寫。這些動態連結程式庫是些具有.DLL或者有時是.EXE副檔名的檔案,在運行時候才調用這些函式。

基本介紹

  • 中文名:動態連線
  • 外文名: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函式。

相關詞條

熱門詞條

聯絡我們