本系列開幕篇建立 DLL 核心認知:從「無庫 → 靜態庫 → 動態庫」的演進邏輯、DLL 與靜態庫的本質區別、VC++ 三類 DLL 分類、學習路徑與調試查看工具鏈。
__stdcall/__cdecl)與二進制佈局,任何語言編寫的 DLL 均可互調(VB 調 C++ DLL,C# P/Invoke 系統 DLL 等)。kernel32.dll(內存/進程)、user32.dll(UI/窗口)、gdi32.dll(繪圖)構成 Windows API 基石,MessageBox 即來自 user32.dll。CWinApp 派生類,可用 MFC,導出 C 介面,跨語言可調。File → New → Project → Win32 Static Library,名稱 libTest。
// lib.h
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x, int y);
#endif
// lib.cpp
#include "lib.h"
int add(int x, int y) { return x + y; }
#include
#include "..\libTest\lib.h"
#pragma comment(lib, "..\Debug\libTest.lib")
int main() { printf("2+3=%d", add(2,3)); }
或 Tools → Options → Directories → Library files 加入庫路徑。
F11 單步進入庫源碼。Tools → Dependency Walker 或獨立運行 Depends.exe。user32.dll → 紅框顯示 MessageBoxA/W/Ex 等導出函數。建立正確的 DLL 心智模型,是後續掌握 MFC 普通/擴展 DLL、COM 組件、插件架構的基石。