主要兩種使用方式
有顯式連結(Explicit Linking)和隱式連結(Implicit Linking),後續 都會有實際的範例一步一步示範。
現在主要介紹這兩種方式主要的不同,這樣才不會在後續的實作搞混。
顯式連結(Explicit Linking)
- 在程式執行期間,使用函式庫的函式前需要明確地載入 DLL 並獲取函式指標。
- 主要步驟包括載入 DLL、獲取函式指標、調用函式、釋放資源。
- 使用
LoadLibrary
和GetProcAddress
函式來實現。 - 適用於需要更高程式碼彈性、更細粒度的控制、避免過多依賴的情況。
- 適用於開發靈活且高度可配置的程式。
隱式連結(Implicit Linking)
- 在編譯期間,將 DLL 的相關信息嵌入到可執行檔中,無需顯式地載入 DLL。
- 主要步驟包括包含相關的頭文件、將 .lib 檔案添加到連結器配置中、編譯時自動將 DLL 中的函式連結到程式中。
- 使用
#pragma comment(lib, "YourLibrary.lib")
或在專案設定中添加 .lib 檔案來實現。 - 適用於需要簡化開發流程、提高開發效率、降低開發者工作量的情況。
- 適用於開發速度較快、對程式碼結構要求不高的情況。
最簡單的分類方式就是否使用到 .lib 檔,在隱式連結時要使用 .lib 檔; 而顯式連結時則不需要。