so文件
,那本篇文章就来介绍一些DLL文件
吧!DLL文件
,大家肯定不会陌生,就算自己没编写生成过DLL文件
,那也一定见过!Windows系统
打开电脑C盘的System
文件夹,往下一拉就会发现有超级多的带有.dll
后缀的文件!DLL文件
到底是个怎样的存在呢?本篇文章就来好好研究一下这个DLL文件
究竟是个啥!先来看一段话:
DLL
是Dynamic Link Library
的缩写,意为动态链接库
。
DLL文件
一般被存放在C:WindowsSystem
目录下。在Windows
中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。
当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件
被称为共享DLL文件
。
那看到这可能有小伙伴就会疑惑了,动态链接库
咋这么眼熟呢,之前介绍so文件的时候也是说的动态链接库!
确实,DLL文件 也称作 动态链接库,那他俩到底有啥区别呢?亲,这边建议百度百科看一下呢(百度也搜不出啥道道来~)
我在查找了一些资料后发现,so 和 dll
都被称作 动态链接库
没错,甚至在Unity中调用他俩的方式都可以是一样的!
我理解的他俩区别可能是:DLL文件是Windows系统下常用的!so文件实际是偏向于Linux系统较多!
具体更详细的区别可能就偏多与底层了,在这里也不做过多的介绍了。接着往下说DLL文件!
比如我在自己电脑的C盘文件夹下就可以看到好多的DLL文件
基本上可以这么说,Windows系统是离不开DLL文件的!
DLL
和EXE
文件一样,其中包含的也是程序的二进制执行代码和程序所需的资源(比如图标、对话框、字符串等)
DLL中的代码是以
API函数`形式出现的,通俗地说,DLL中包含的程序代码都被做成了一个个小模块,应用程序通过按下所需DLL中特定的按钮,来调用DLL中这个按钮所代表的功能
在查阅资料时看到有篇文章是这样说的:
这样来看的话Windows
和DLL
文件确实关系密切的很,在底层代码上都有互动呢!
那么我们为什么要用DLL
文件呢?
前面说到DLL文件
就是一个个小模块的代码
,其中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。
使用DLL文件
的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积。
根据自己的整理和网上查阅的资料简单整理了一下使用DLL文件
的优点,一起来看一下吧
可以更好地扩展应用程序
由于DLL能被应用程序动态载入内存。所以,应用程序可以在需要时才将DLL载入到内存中,这让程序的可维护性变得很高。
比如我们在修改应用程序的某一块功能时,可以只针对这块功能对应的DLL文件中的内容,而不必全局修改代码便于不同领域的程序员之间合作
目前可以用的编程工具有很多,比如VB、VC、Delphi等,如果好几个人合作来编写一个大的程序,那么可能有的人用VB,有的人用VC,每人负责的部分所使用的编程语言都不同,究竟放在哪个编译器中进行编译呢?
这就好比一群来自各个国家的人在共同编写一篇文章,如果他们所使用的语言都不同,写出来的文章怎么可能凑到一起呢?而有了DLL后,可以让VC程序员写一个DLL,然后VB程序员在程序中调用,无需为怎么将它们都编译为一个单独的EXE而发愁了。节省内存
如果多个应用程序调用的是同一个动态链接库,那么这个DLL文件不会被重复多次装入内存中,而是由这些应用程序共享同一个已载入内存的DLL。大概意思就是可以将一些通用的模块功能封装起来,这样大家都可以调用,而避免性能的浪费!更好的解决应用程序本地化问题
在下载了某个程序的汉化包后,打开汉化说明,经常可以看到用下载包中的DLL文件覆盖掉程序原来的DLL,汉化就完成了。
这些程序都是将执行代码和应用程序界面分开编写了,所以汉化者只需简单地将其中和程序界面相关的DLL汉化并发布即可。关于DLL文件
的底层并没有介绍很深,因为博主对这方面的认知也不是很深刻,还是有自知之明的!
介绍一些关于DLL
的大概知识,方便我们以后使用Unity的过程中遇到DLL文件
时可以有个一知半解
那本篇文章对于DLL文件
的介绍就到这里了,后面会写文章介绍怎样生成一个DLL文件
和在Unity中调用DLL文件
的使用!