标签:
为什么要有动态链接库?
一个大项目(如英雄联盟)如果所有的功能都编译连接成一个完整的可执行程序加载到内存,那么这个大软件会变得非常非常的大,这是非常耗内存的,并且在现在的多道程序高并发下的操作系统,内存里会有很多待运行的软件,所以内存资源是非常珍贵的。针对这种现象就出现了动态链接库,也就是把一个功能独立的程序以二进制的形式存在磁盘上,一个程序在用到这个功能时就去磁盘上找到它,然后加载到内存里。
动态链接库的好处是什么?(来自百度知道http://zhidao.baidu.com/link?url=saGfTfNTcoBx1_qFM-KozkBjCWyrZH7KYI71euBynH-XdfUzg12T7GWw3K7qDlomhOQZiAZmrqG_WmWnwD9iSq)
DLL是动态连接库。使用动态连接库的一些好处是:
1.多个应用程序共享代码和数据:比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态连接库实现的。
2.在钩子程序过滤系统消息时必须使用动态连接库。
3.动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与合作。而且,各个模块可以独立升级。如果小组中的一个成员开发了一组实用例程,他就可以把这些例程放在一个动态连接库中,让小组的其他成员使用。
4.为了实现应用程序的国际化,往往需要使用动态连接库。使用动态连接库可以将针对某一国家、语言的信息存放在其中。对于不同的版本,使用不同的动态连接库。在使用AppWizard生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同的动态连接库实现的。
VC++、C++ Builder、Delphi都可以编写DLL文件。Visual Basic 5.0以上版本也可以编写一种特殊的DLL,即ActiveX DLL。
DLL不是独立运行的程序,它是某个程序的一个部分,它只能由所属的程序调用。用户不能,也不需要打开它。
以上纯属个人见解,有不对的地方随时讨论。
标签:
原文地址:http://www.cnblogs.com/mimangdexiaoniu/p/5747704.html