/DELAY
(延遲載入匯入設定)
連結器選項,可控制在執行時間延遲載入 DLL。
語法
/DELAY:UNLOAD
/DELAY:NOBIND
備註
選項 /DELAY
可控制 DLL 延遲載入 :
/DELAY:UNLOAD
限定詞會告知延遲載入協助程式函式支援明確卸載 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。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應