DLL和LIB

您所在的位置:网站首页 dll文件和lib文件 DLL和LIB

DLL和LIB

2022-03-24 21:37| 来源: 网络整理| 查看: 265

DLL

LIB 

 

什么事

dll

lib

文件

 

动态链接库(

Dynamic 

 

 

Link 

 

 

Library

,缩写为

DLL

)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程

和资源。动态链接库文件的扩展名一般是

dll

,也有可能是

drv

sys

fon

,它和可执行文件(

exe

)非常类似,区别在于

DLL

中虽然包含

了可执行代码却不能单独执行,而应由

Windows

应用程序直接或间接调用。

 

 

 

 

 

 

 

 

 

动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。换句话

说,函数和过程的代码就在程序的

exe

文件中,该文件包含了运行时所需的全部代码。当多个程序都调用相同函数时,内存中就会存在这

个函数的多个拷贝,这样就浪费了宝贵的内存资源。而动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅

在其中加入了所调用函数的描述信息(往往是一些重定位信息)

。仅当应用程序被装入内存开始运行时,在

Windows

的管理下,才在应用

程序与相应的

DLL

之间建立链接关系。

当要执行所调用

DLL

中的函数时,根据链接产生的重定位信息,

Windows

才转去执行

DLL

中相应

的函数代码。

 

 

 

 

 

 

 

 

 

一般情况下,如果一个应用程序使用了动态链接库,

Win32

系统保证内存中只有

DLL

的一份复制品,这是通过内存映射文件实现的。

DLL

首先被调入

Win32

系统的全局堆栈,然后映射到调用这个

DLL

的进程地址空间。在

Win32

系统中,每个进程拥有自己的

32

位线性地址空

间,如果一个

DLL

被多个进程调用,每个进程都会收到该

DLL

的一份映像。与

16

Windows

不同,在

Win32

DLL

可以看作是每个进

程自己的代码。

 

dll

lib

文件的区别和联系

 

 

 

 

 

 

.dll

是在你的程序运行的时候才连接的文件,因此它是一种比较小的可执行文件格式,

.dll

还有其他的文件格式如

.ocx

等,所有的

.dll

文件

都是可执行。

 

 

 

 

 

 

 

 

 

.lib

是在你的程序编译连接的时候就连接的文件,因此你必须告知编译器连接的

lib

文件在那里。一般来说,与动态连接文件相对比,

lib

文件也被称为是静态连接库。当你把代码编译成这几种格式的文件时,在以后他们就不可能再被更改。如果你想使用

lib

文件,就必须:

 

 

 

 

 

 

 

 

包含一个对应的头文件告知编译器

lib

文件里面的具体内容

 

 

 

 

 

 

 

 

设置

lib

文件允许编译器去查找已经编译好的二进制代码

 

 

 

 

 

 

 

 

 

如果你想从你的代码分离一个

dll

文件出来代替静态连接库,仍然需要一个

lib

文件。这个

lib

文件将被连接到程序告诉操作系统在运行的

时候你想用到什么

dll

文件,一般情况下,

lib

文件里有相应的

dll

文件的名字和一个指明

dll

输出函数入口的顺序表。如果不想用

lib

文件

或者是没有

lib

文件,

可以用

WIN32 

 

 

API

函数

LoadLibrary

GetProcAddress

这就是问什么编译出

dll

VS

又给出了个

lib

文件的原因?

 

 

 

 

(1)lib

是编译时需要的,

dll

是运行时需要的。

 

 

如果要完成源代码的编译,有

lib

就够了。

 

 

如果也使动态连接的程序运行起来,有

dll

就够了。

 

 

在开发和调试阶段,当然最好都有。

 

 

(2)

一般的动态库程序有

lib

文件和

dll

文件。

lib

文件是必须在编译期就连接到应用程序中的,

dll

文件是运行期才会被调用的。

如果有

dll

文件,那么对应的

lib

文件一般是一些索引信息,具体的实现在

dll

文件中。如果只有

lib

文件,那么这个

lib

文件是静态编译出来的,索引



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3