共用方式為


了解 Helper 函式

更新:2007 年 11 月

連結器支援的延遲載入 Helper 函式是在執行階段實際載入 DLL 的函式。您可以撰寫自己的函式,並將它與您的程式連結,而不使用 Delayimplib 提供的 Helper 函式,來修改 Helper 以自訂其行為。由一個 Helper 函式負責服務所有延遲載入的 DLL。

如果您希望根據 DLL 或匯入的名稱執行特定的處理,可以提供您自己的 Helper 函式版本。

Helper 函式執行下列動作:

  • 檢查程式庫中儲存的控制代碼,以確認是否已經載入

  • 呼叫 LoadLibrary 以試著載入 DLL

  • 呼叫 GetProcAddress 以試著取得程序的位址

  • 傳回延遲匯入載入 Thunk,以便呼叫目前已載入的進入點

Helper 函式可以在執行下列每一動作後,回呼程式中的告知攔截:

  • 在 Helper 函式啟動後

  • 在 Helper 函式呼叫 LoadLibrary

  • 在 Helper 函式呼叫 GetProcAddress

  • 在 Helper 函式呼叫 LoadLibrary 失敗時

  • 在 Helper 函式呼叫 GetProcAddress 失敗時

  • 在 Helper 函式處理完畢後

其中每一個攔截點都可以傳回將以某些方式改變 Helper 常式正常處理行為的值,除了傳回延遲匯入載入 Thunk 外。

在 Delayhlp.cpp 和 Delayimp.h (vc\include 之下) 中可以找到預設的 Helper 程式碼,並在 Dealyimp.lib (vc\lib 之下) 中編譯。除非您撰寫了自己的 Helper 函式,否則在您的編譯 (Compilation) 中必須包含這個程式庫。

下列主題說明 Helper 函式:

請參閱

概念

延遲載入 DLL 的連結器支援