/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 開發環境中設定這個連結器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱設定 Visual C++ 專案屬性。
按一下 [連結器] 資料夾。
按一下 [進階] 屬性頁。
修改 [延遲載入 DLL] 屬性。
以程式設計方式設定這個連結器選項
- 請參閱 DelayLoadDLLs。