初识DLL
DLL是Dynamic link Library 的缩写以为动态链接库。
在Windows中,许多的应用程序并不是一个完整的可执行文件,会被分成一些相对独立的动态链接库,如DLL文件,放置于系统中 比如: Windows系统是许多动态链接库(DLL)组成的 是Windows最基本的应用程序
但我们执行运行某一个应用程序的时候,相应的DLL文件就会被程序调用,一个应用程序可以调用多个DLL,同样 一个DLL文件可以被多个应用程序所调用这样的DLL文件被称为共享DLL文件
如果感染了共享DLL,在重启电脑的时候,所有调用它的都会被感染
它允许程序共享执行特殊任务所必需的代码和其他资源,比较大的应用程序都有很多模块(动态链接库)组成,这些模块分别完成相对独立的功能,他们彼此写作来完成整个系统软件的工作
Windows 系统平台上提供了一种完全不同的较为有效的变成和原型环境,你可以将独立的程序模块创建为较小的DLL文件,并可对他们单独编译和测试,在运行的时候,只有exe程序需要调用盗这些dll模块的情况下,系统才会将他们装在到内存空间中,这种方式不仅间少了exe文件的大小和内存空间的需求,而且可以使这些dll模块同时被多个应用程序调用,Windows本身就将一些主要的系统功能以dll文件的形式所实现。
一般来说,dll是一种磁盘文件,以dll、drv、fon、sys和诸多以.exe为扩展名的系统文件都可以是dll(动态链接库)
dll,算是一种windwows自带的程序编程接口,它是由全局数据、服务函数和资源组成,在运行时被系统加载到调用进程的虚拟空间中,称为进程的一部分
PS:
- 如果以其他dll之间没有冲突,该文件通常映射到进程虚拟空间的同一地址上
- dll模块包含各种到处函数,用于向外界提供服务,一个dll在内存中只有一个实例,多个应用程序调用同一个
- dll实现了代码封装性
- dll的编制与句题的编程语言及编译器勿关,C、C++、C#、易语言、python、VB、delphi
- dll模块需要的堆栈内存都是从运行进程堆栈中分配出来的
- dll函数中的代码所创建的任何对象(包括变量)都归调用它的进程和线程所有