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

/DELAY:UNLOAD
/DELAY:NOBIND

備註

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

  • UNLOAD 限定詞 (Qualifier) 會告訴延遲載入 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. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱設定 Visual C++ 專案屬性

  2. 按一下 [連結器] 資料夾。

  3. 按一下 [進階] 屬性頁。

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

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

請參閱

參考

設定連結器選項

連結器選項