zoukankan      html  css  js  c++  java
  • 笔记:关于dll的DelayLoad机制

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

    DelayLoad对需要引用的方法加入了一个存根,在这个方法存根中,通过LoadLibrary和GetProcAddress来获取函数的真正地址。这就是DelayDoad机制。通过封装,DelayLoad机制可以不破坏正常的程序编写。但通过加入方法存根,达到了加快启动速度的目的。
  • 相关阅读:
    神秘题目4
    神秘题目3
    神秘题目2
    AC自动机
    Fence Obstacle Course 题解
    Fractal Streets
    龟速乘
    快速幂
    Stall Reservation
    Sunscreen
  • 原文地址:https://www.cnblogs.com/qkhh/p/1560300.html
Copyright © 2011-2022 走看看