VS连接器对延迟加载dll的支持

参照:http://technet.microsoft.com/zh-cn/library/151kt790(v=vs.80)

Visual C++ 链接器现在支持 DLL 的延迟加载。这使您不必再用 Platform SDK 函数 LoadLibrary 和 GetProcAddress 来实现 DLL 延迟加载。

在 Visual C++ 6.0 版之前,在运行时加载 DLL 的唯一办法是使用 LoadLibrary 和 GetProcAddress 函数;当使用操作系统的可执行文件或 DLL 被加载之后,操作系统才加载 DLL。

从 Visual C++ 6.0 开始,与 DLL 静态链接时,链接器提供了一些选项,将 DLL 的加载延迟到程序调用该 DLL 中的函数时才进行。

应用程序可以使用具有 Helper 函数的 /DELAYLOAD(延迟加载导入)链接器选项延迟加载 DLL(Visual C++ 提供的默认实现)。Helper 函数将在运行时通过调用 LoadLibrary 和GetProcAddress 为您加载 DLL。

在下列情况下,应考虑延迟加载 DLL:

  • 程序可能不调用 DLL 中的函数。

  • 可能直到程序执行后期才调用 DLL 中的函数。

可在 .EXE 或 .DLL 项目生成过程中指定延迟加载 DLL。延迟加载一个或多个 DLL 的 DLL 项目本身不应调用 Dllmain 中的延迟加载入口点。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值