Implicit Linking与Explicit Linking

一、Implicit Linking()

            Implicit Linking() ,又叫静态载入,所态载入是指程序在期即与dlls对应import libraries作静态连接,于是可行文件中便所有的dll函数都有一份重定位表格(relocation table)和待修正记录fixup record)。当程序被windows入器入内存中入器会自修正所有的fixup records,而fixup records 就是记录DLL中所有源的正确位置地址,经过这样的程序动态连接便自动产生。也就是,程序,会用静态载入的方式所使用的DLLs入到程序的内存里。

      静态载入方式的

      1、静态载入方式所使用的dll会在用程序时载入,然后就可以用所有dll中提供的函数,就像是程序中一

      2、处简单入的方法有编译负责处理,不需动脑筋。

      静态载入方式的缺点

      1、当程序机构态载入方式所使用的dll不存在,程序始就会dll无法找到的错误而使得程序无法运行。

编译时需要加入import library

      2、若用的dll很多,用程序的速度就会很慢。

不同的c++编译器静态载入的方式也不一

 

二、Explicit Linking(接)

          Explicit Link接)又叫动态载入,使用dll的可行文件必明确入和御dll的函数用(Function Call),并且存取dll出函数。用端必函数声明用函数。

          行文件可以使用任何一种连接方式的相同低dll。并且,些机制之并不会相互排斥,因此,当一个可行文件式的dll,其他程序可以示地接它。

原文地址:https://www.cnblogs.com/alleyonline/p/4659898.html