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

C++ 動態載入 DLL 終止指定進程實作範例

     編輯:關於C++

展示如何在 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 回傳值,避免空指標呼叫。
  • 適用於需動態決定載入哪個 DLL、或減少靜態連結依賴的場合。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved