共用方式為


/DELAY (延遲載入匯入設定)

/DELAY:UNLOAD
/DELAY:NOBIND

備註

/DELAY 選項會控制 DLL 的延遲載入

  • UNLOAD 限定詞會告知延遲載入 Helper 函式,支援明確卸載 DLL。 匯入位址表 (IAT) 會重設為其原始形式,這會使 IAT 指標失效,並導致它們被覆寫。

    如果您未選取 UNLOAD,則對 FUnloadDelayLoadedDLL 的任何呼叫都會失敗。

  • NOBIND 限定詞會告知連結器不在最終映像檔中包含可繫結 IAT。 預設會是針對延遲載入 DLL 建立可繫結 IAT。 所產生的映像檔無法靜態繫結 (具有可繫結 IAT 的映像檔在執行之前,可能是靜態繫結的)。請參閱 /BIND

    如果已繫結 DLL,則 Helper 函式會嘗試在每一個參考匯入上,使用繫結資訊,而不是呼叫 GetProcAddress (英文)。 如果時間戳記或慣用位址與那些已載入 DLL 的時間戳記或慣用位址不相符,則 Helper 函式會假設已繫結 IAT 已過期,且會像已繫結 IAT 不存在那樣來進行處理。

    NOBIND 會導致您的程式映像檔變大,但可加速 DLL 的載入。 如果您從未繫結 DLL,則 NOBIND 會防止產生已繫結 IAT。

若要指定 DLL 延遲載入,請使用 /DELAYLOAD 選項。

在 Visual Studio 開發環境中設定這個連結器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱 使用專案屬性

  2. 展開 [組態屬性]、[連結器],然後選取 [進階]。

  3. 修改 [延遲載入 DLL] 屬性。

若要以程式設計方式設定這個連結器選項

請參閱

參考

設定連結器選項

連結器選項