首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC 中連結動態連結庫 (DLL) 的五種方法總覽

     編輯:關於VC++

前言

在 Visual C++ 專案中使用動態連結庫 (DLL) 時,有多種連結方式可供選擇。本文簡要說明五種常見方法,各有優缺點,開發者可根據專案需求選擇。

方法一:動態載入 (Run-time Dynamic Linking)

使用 Windows API 手動載入、取得函數位址、釋放 DLL:

  1. HINSTANCE LoadLibrary(LPCTSTR lpLibFileName); — 載入 DLL
  2. FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName); — 取得函數/變數位址
  3. BOOL FreeLibrary(HMODULE hLibModule); — 釋放 DLL

這是最直觀但也最繁瑣的方法,適合需動態決定載入哪個 DLL 或延遲載入的情境。

方法二:專案相依性設定

讓呼叫端專案相依於 DLL 專案:

  1. 將呼叫端專案設為作用中 (Active) 狀態。
  2. 開啟「專案相依性」對話框:Project → Dependencies。
  3. 勾選 DLL 專案。

此法方便,但要求擁有 DLL 的專案檔 (原始碼專案)。

方法三:直接加入 .lib 匯入庫

將 DLL 建置產生的 .lib 匯入庫檔案直接加入呼叫端專案中 (專案右鍵 → Add → Existing Item)。

方法四:連結器設定指定 .lib 路徑與檔名

  1. 開啟專案屬性:Project → Settings → Link (VC6) 或 Project → Properties → Linker → Input (VC7+)。
  2. 在 Object/Library Modules (或 Additional Dependencies) 輸入 DLL 對應的 .lib 檔名。
  3. 在 Additional Library Path (或 Additional Library Directories) 輸入 .lib 所在路徑。

方法五:使用 #pragma comment(lib, ...)

在原始碼中直接指定匯入庫:

#pragma comment(lib, "MyDll.lib")

此法簡潔,編譯器會自動將指定的庫加入連結清單。

總結建議

  • 若需執行期決定載入 DLL → 方法一。
  • 同方案內同時開發 EXE 與 DLL → 方法二。
  • 僅有編譯好的 DLL 與 .lib → 方法三、四、五皆可,團隊慣例優先。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved