DLL
更新:2007 年 11 月
動態連結程式庫 (DLL) 是具有函式的共用程式庫功能的可執行檔。動態連結提供一種方法,讓處理序 (Process) 呼叫不是可執行程式碼部分的函式。函式的可執行程式碼位於 DLL 裡,它包含一或多個已編譯、連結的函式,並且儲存在與使用它們的處理序不同的地方。DLL 也有助於共用資料和資源。多個應用程式可以同時存取記憶體中 DLL 單一複本的內容。
動態連結與靜態連結的不同處在於,前者允許可執行模組 (.DLL 或 .EXE 檔) 只包含在執行階段時用來找出 DLL 函式可執行程式碼的所需資訊。在靜態連結中,連結器 (Linker) 會從靜態連結程式庫取得所有參考函式,並且將它與您的程式碼一起放入可執行檔。
不使用靜態連結而改用動態連結可提供許多優點。DLL 節省記憶體、降低交換、節省磁碟空間、較容易升級、提供售後支援、提供擴充 MFC 程式庫類別機制、支援多種語言程式和簡化國際版本的建立。
下列主題會提供 DLL 程式設計的詳細資訊。
本章節的內容
應用程式和 DLL 之間的差異
說明應用程式和 DLL 之間的基本差異。使用 DLL 的優點
說明動態連結的優點。DLL 常見問題集
提供 DLL 常見問題的解答。將可執行檔連結至 DLL
說明 DLL 的明確和隱含連結方式。初始化 DLL
討論必須在載入 DLL 時執行的初始化程式碼 (例如,配置記憶體)。執行階段程式庫行為
說明執行階段程式庫如何執行 DLL 啟動程序。LoadLibrary 和 AfxLoadLibrary
討論使用 LoadLibrary 和 AfxLoadLibrary 明確連結到 DLL 的方式。GetProcAddress
討論使用 GetProcAddress 取得 DLL 中匯出函式 (Exported Function) 的位址。FreeLibrary 和 AfxFreeLibrary
討論在不再需要 DLL 模組時使用 FreeLibrary 和 AfxFreeLibrary 的方式。Windows 用來找出 DLL 的搜尋路徑
說明 Windows 作業系統在系統上找出 DLL 時所用的搜尋路徑。動態連結至 MFC 之標準 DLL 的模組狀態
說明動態連結至 MFC 的標準 DLL 之模組狀態。擴充 DLL
說明實作衍生自現有 MFC 程式庫類別的重複使用類別的 DLL。建立僅含資源的 DLL
說明僅含資源 DLL,這種 DLL 只會包含資源,例如,圖示、點陣圖、字串和對話方塊。MFC 應用程式中的當地語系化資源:附屬 DLL
提供對附屬 DLL 的增強支援,這項功能可協助建立當地語系化成多國語言的應用程式。匯入和匯出
說明將公用 (Public) 符號匯入應用程式,或是從 DLL 匯出函式的方法。Active 技術和 DLL
讓物件伺服程式可以完整地於 DLL 內實作。DLL 中的 Automation
說明 MFC DLL 精靈提供的 Automation 選項。MFC DLL 命名慣例
討論包含在 MFC 的 DLL 和程式庫如何遵守結構化的命名慣例。從 Visual Basic 應用程式呼叫 DLL 函式
說明從 Visual Basic 應用程式呼叫 DLL 函式的方式。
相關章節
將 MFC 當成 DLL 的一部分來使用
說明標準 DLL,可以讓您將 MFC 程式庫當成 Windows 動態連結程式庫來使用。MFC 的 DLL 版本
說明如何以 MFC 應用程式和擴充 DLL 使用 MFCxx.dll 和 MFCxxD.dll (其中 x 是指 MFC 版本號碼) 共用的動態連結程式庫。一般程式設計方法
提供主題的連結,主題說明 Visual C++ 程式庫的慨念性資訊並討論各種程式碼撰寫的技術和技巧。