了解 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 函式: