DLL
動態連結程式庫 (DLL) 是具有函式的共用程式庫功能的可執行檔。 動態連結提供一種方法,讓處理序 (Process) 呼叫不是可執行程式碼部分的函式。 函式的可執行程式碼位於 DLL 裡,它包含一個或多個已編譯、連結的函式,並且儲存在與使用它們的處理序不同的地方。 DLL 也有助於共用資料和資源。 多個應用程式可以同時存取記憶體中 DLL 單一複本的內容。
動態連結與靜態連結的不同處在於,前者允許可執行模組 (.DLL 或 .EXE 檔) 只包含在執行階段時用來找出 DLL 函式可執行程式碼的所需資訊。 在靜態連結中,連結器 (Linker) 會從靜態連結程式庫取得所有參考函式,並且將它與您的程式碼一起放入可執行檔。
不使用靜態連結而改用動態連結可提供許多優點。 DLL 節省記憶體、降低交換、節省磁碟空間、較容易升級、提供售後支援、提供擴充 MFC 程式庫類別機制、支援多種語言程式和簡化國際版本的建立。
下列主題會提供 DLL 程式設計的詳細資訊。
本章節內容
逐步解說:建立和使用動態連結程式庫 (C++)
描述如何使用 Visual Studio 來建立並使用 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++ 程式設計方法
提供主題連結,這些主題將描述 Visual C++ 程式庫的概念性資訊,以及討論各種程式碼撰寫技術和技巧。