DLL和自由
库是可用于开发应用程序的资源集合。库通常由子例程、函数、类、值和类型组成。在链接过程中(通常由链接器完成),库和可执行文件相互引用。库文件根据子例程加载到目标应用程序的时间分为静态库和动态库。因此,LIB文件是静态链接库,DLL文件是动态链接库。
DLL是什么?
动态链接库(通常称为DLL)是微软开发的一种共享库实现。它使用。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的例子。
被称为节的组件组成了一个DLL,每个节都有自己的属性,比如只读/可写和可执行/不可执行。代码段是可执行的,而数据段是不可执行的。代码段是共享的,数据段是私有的。这意味着所有使用DLL的进程将使用相同的代码副本,而每个进程将拥有自己的数据副本。Windows的主要动态库是kernel32.dll,它包含Windows上的基本函数(文件和内存相关的功能)。COM(组件对象模型)是DLL对OOP(面向对象编程)的扩展。传统的dll比COM文件更容易使用。
自由是什么?
LIB文件是静态库(也称为静态链接库)。LIB文件包含一组子例程、外部函数和变量。LIB文件在编译时解析(与运行时相反)。代码实际上被复制到目标应用程序中。编译器、链接器或绑定器将进行这种解析,并产生一个目标文件和一个可执行文件。这个过程称为静态构建过程。
DLL和LIB的区别是什么?
LIB库可以在编译时调用,但DLL库只能在运行时调用。LIB文件比DLL文件大得多。DLL文件的一个非常常见的问题是版本问题。当DLL的代码被更改,应用程序使用了错误版本的DLL时,就会发生这种情况。这不是与LIB文件相关的问题。就可重用性而言,在编写新版本的系统或全新的应用程序时,dll总是比lib更好。
留下一个回复