回覆列表
  • 1 # 使用者774056550451

    HINSTANCE hInst = LoadLibrary(L"User32.DLL"); // 載入DLLif(hInst){ // 載入成功 // 定義待訪問函式原型 typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD); MYFUNC fun = NULL; // 獲取函式地址 fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes"); if(fun) { // 成功 fun(hWnd, RGB(0, 0, 0), 255, 2 | 1); } FreeLibrary(hInst); //釋放 DLL} 基本上就是這麼一個流程,LoadLibrary->成功->獲取函式入口點->呼叫函式->最後FreeLibrary,注意FreeLibrary是必須要實現的不然會造成資源洩漏。

  • 2 # 藍風24

      你得自己調顯示的函式啊。你載入模組了得調相應的函式顯示啊。

      步驟如下:

      1.載入動態庫(使動態庫程式執行)

      HMODULE LoadLibrary(

      LPCTSTR lpFileName

      // 動態庫的名稱或全路徑

      );//返回動態庫的例項控制代碼(HINSTANCE)。

      如果dll檔案與.exe檔案在同一路徑下,只需要寫動態庫名稱,不在同一路徑下,則需寫帶碟符的全路徑

      2.

      獲取函式地址

      FARPROC GetProcAddress(

      HMODULE hModule,

      // 動態庫例項控制代碼

      LPCSTR lpProcName

      // 函式名稱

      );//執行成功,返回函式地址。

      //現在才是你需要注意的地方,比如你dll中有一個show函式是顯示對話方塊的,你就根據上面第2步傳show引數得到的函式地址,透過函式指標直接呼叫就可以顯示了。

      3.

      解除安裝動態庫

      BOOL FreeLibrary(

      HMODULE hLibModule

      // 動態庫例項控制代碼

      );

  • 中秋節和大豐收的關聯?
  • 怎樣調整好假期心態,快速進入學習狀態?