/DELAY
(延遲載入設定)
鏈接器選項,可控制在運行時間延遲載入 DLL。
語法
/DELAY:UNLOAD
/DELAY:NOBIND
備註
選項 /DELAY
可控制 DLL 延遲載入 :
/DELAY:UNLOAD
限定詞會告知延遲載入 Helper 函式,支援明確卸載 DLL。 匯入位址表 (IAT) 會重設為其原始形式,這會使 IAT 指標失效,並導致它們被覆寫。如果您未選取
/DELAY:UNLOAD
,則對的任何呼叫__FUnloadDelayLoadedDLL
都會失敗。限定
/DELAY:NOBIND
符會告知連結器不要在最終影像中包含可系結的 IAT。 預設會是針對延遲載入 DLL 建立可繫結 IAT。 產生的影像無法以靜態方式系結。 (具有可系結 IAT 的影像可能會在執行前以靜態方式系結。如需詳細資訊,請參閱/BIND
。如果 DLL 已繫結,協助程式函式會嘗試使用系結資訊,而不是在每個參考的匯入上呼叫
GetProcAddress
。 如果時間戳或慣用位址不符合載入 DLL 中的時間戳,協助程式函式會假設系結的 IAT 已過期。 它會繼續,就像系結的 IAT 不存在一樣。/DELAY:NOBIND
會使程式映像變大,但可以加快 DLL 的載入時間。 如果您從未想要系結 DLL,/DELAY:NOBIND
可防止產生系結的 IAT。
若要指定要延遲載入的 DLL,請使用 /DELAYLOAD
選項。
在 Visual Studio 開發環境中設定這個連結器選項
開啟專案的 [ 屬性頁 ] 對話框。 如需詳細資訊,請參閱 設定編譯程式和建置屬性。
選取 [組態屬性>] 連結器>[進階] 屬性頁。
修改 Unload 延遲載入 DLL 屬性或 Unbind 延遲載入 DLL 屬性。 選擇 [確定] 或 [套用] 以儲存變更。
若要以程式設計方式設定這個連結器選項
- 請參閱 AdditionalOptions。