DLL与LIB
库是可用于开发应用程序的资源集合。库通常由子程序、函数、类、值和类型组成。在链接过程中(通常由链接器完成),库和可执行文件相互引用。根据子程序加载到目标应用程序的时间,库文件分为静态库和动态库。因此,LIB文件是静态链接库,DLL文件是动态链接库。
什么是DLL?
动态链接库(通常称为DLL)是由Microsoft开发的共享库实现。它使用.dll、.ocx或.drv扩展名,它们在Microsoft Windows和OS/2操作系统中使用。dll由常规dll文件使用。ocx扩展名由包含ActiveX控件的库使用,.drv扩展名由旧系统驱动程序文件使用。DLL文件格式与Windows EXE文件相同(32位/64位Windows上的可移植可执行文件,16位Windows上的新可执行文件)。因此,任何代码、数据和资源的组合都可以包含在DLL文件中(就像在EXE文件中一样)。实际上,具有DLL文件格式的数据文件称为资源DLL。图标库(扩展名为.icl)和字体文件(扩展名为.fon和.fot)是资源DLL的示例。
称为secti***的组件组成一个DLL,每个节都有自己的属性,比如只读/可写和可执行/不可执行。代码段是可执行的,而数据段是不可执行的。代码部分是共享的,数据部分是私有的。这意味着使用DLL的所有进程将使用相同的代码副本,而每个进程都将有自己的数据副本。Windows的主要动态库是kernel32.dll,它包含Windows上的基本函数(与文件和内存相关的功能)。COM(Component Object Model)是DLL对OOP(面向对象编程)的扩展。传统的DLL比COM文件更容易使用。
什么是LIB?
LIB文件是静态库(也称为静态链接库)。LIB文件包含子例程、外部函数和变量的集合。LIB文件在编译时解析(与运行时相反)。实际上是复制到应用程序中的目标代码。编译器、链接器或绑定器将执行此解析并生成一个目标文件和一个可执行文件。此过程称为静态构建过程。
DLL和LIB有什么区别?