/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,则 helper 函数会尝试使用绑定信息,而不是对每个引用的导入调用
GetProcAddress
。 如果时间戳或首选地址与加载的 DLL 中的时间戳或首选地址不匹配,则 helper 函数会假定绑定的 IAT 已经过期。 它继续执行,就像绑定的 IAT 不存在一样。/DELAY:NOBIND
导致程序图像比较大,但是可以加快 DLL 的加载时间。 如果从不打算绑定 DLL,则/DELAY:NOBIND
将禁止生成绑定的 IAT。
若要指定 DLL 延迟加载,请使用 /DELAYLOAD
选项。
在 Visual Studio 开发环境中设置此链接器选项
打开项目的“属性页”对话框。 有关详细信息,请参阅设置编译器和生成属性。
选择“配置属性”>“链接器”>“高级”属性页。
修改卸载延迟加载的 DLL 属性或解除绑定延迟加载的 DLL 属性。 选择“确定”或“应用”以保存更改。
以编程方式设置此链接器选项
- 请参阅 AdditionalOptions。