已有獨立編譯成功的 A.exe、B.exe(各自含多個 .h/.cpp),現需讓 A.exe 擁有 B 的功能,不再維護兩個執行檔。
.h、.cpp 複製到 A 專案目錄#include "B_header.h" 直接呼叫 B 的函數/類別⚠ 缺點:命名衝突風險、重編譯時間長、版本管理混淆。
B.lib + 頭檔B.lib.lib 目錄#include "B.h" 正常使用優點:編譯單元分離、連結時才解析符號、支援增量建置、無命名空間汙染(配合 namespace)。
__declspec(dllexport).lib + .h) 或顯性連結 (LoadLibrary/GetProcAddress)B.dll是否需獨立更新 B 功能? → 是 → DLL
否 → 是否需跨專案/跨語言共用? → 是 → DLL
否 → 靜態庫 .lib (最佳平衡)