• 笔记:关于dll的DelayLoad机制


    本文指的DelayLoad机制并不是指编译器的链接参数。而是实现Dll加载的一种方式。
    引用Dll分为显示引用和隐式引用。如果是显示引用,则会加载EXE的时候加载Dll。其内部机制是,在EXE中会有一个IAT表,记录引用到的函数地址。当程序加载运行,加载器会根据imports表加载程序需要的dll。另一种加载dll的方法是通过LoadLibrary和GetProcAddress来得到函数地址。这种方式是只有运行到这段代码时,才会加载dll。在这个基础上,我们有了Delayload。

    DelayLoad对需要引用的方法加入了一个存根,在这个方法存根中,通过LoadLibrary和GetProcAddress来获取函数的真正地址。这就是DelayDoad机制。通过封装,DelayLoad机制可以不破坏正常的程序编写。但通过加入方法存根,达到了加快启动速度的目的。
  • 相关阅读:
    CSS之各种居中
    三步教会你装系统
    65条最常用正则表达式
    MongoDB介绍
    MongoDB基本命令用
    log4j配置
    使用spring + ActiveMQ 总结
    log4j配置文件
    如何入侵局域网电脑
    目标检测的图像特征提取
  • 原文地址:https://www.cnblogs.com/qkhh/p/1560300.html
Copyright © 2020-2023  润新知