/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 開發環境中設定這個連結器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資訊,請參閱 使用專案屬性。
展開 [組態屬性]、[連結器],然後選取 [進階]。
修改 [延遲載入 DLL] 屬性。
若要以程式設計方式設定這個連結器選項
- 請參閱 DelayLoadDLLs。