展示如何在 C++ 中動態載入 DLL 並呼叫其匯出函數以終止指定名稱的進程。核心步驟包含 LoadLibrary 載入 DLL、GetProcAddress 取得函數位址、透過函數指標呼叫、最後 FreeLibrary 釋放 DLL。
#include <stdio.h>
#include <windows.h>
typedef int (*lpE_Pro_KillProcessByName)(IN const char* pchar_param_ProName);
int main(int argc, char *argv[]) {
HINSTANCE hDll = LoadLibrary("WinAPIExS.dll");
if (hDll != NULL) {
lpE_Pro_KillProcessByName KillProcessByName =
(lpE_Pro_KillProcessByName)GetProcAddress(hDll, "E_Pro_KillProcessByName");
if (KillProcessByName != NULL) {
char procname[] = "Thunder5.exe";
KillProcessByName(procname);
}
FreeLibrary(hDll);
}
return 0;
}
WinAPIExS.dll 並確保其匯出 E_Pro_KillProcessByName 函數,簽名為 int (const char*)。typedef 定義函數指標型別,提升可讀性與型別安全。LoadLibrary 與 GetProcAddress 回傳值,避免空指標呼叫。