动态链接库与可执行文件的本质区别?

在我目前的只是范围内、可执行程序(Exe)是一段可自运行的程序集、只有一个入口点;然后动态链接库(Dll)是一段不可自运行的代码集合、有多个入口点供外部调用、并且在运行期... 在我目前的只是范围内、可执行程序(Exe)是一段可自运行的程序集、只有一个入口点;然后动态链接库(Dll)是一段不可自运行的代码集合、有多个入口点供外部调用、并且在运行期间、动态链接库没有自身的内存空间、他的代码全都释放到宿主程序的内存空间、
那么我现在疑问是、为什么有些功能必须通过写DLL、然后来调用来实现?而无法写在可执行程序中?
展开
 我来答
会编程的法师助理
推荐于2018-05-12 · TA获得超过2.9万个赞
知道大有可为答主
回答量:5166
采纳率:61%
帮助的人:364万
展开全部
  本质区别在于动态链接库本身是不能被执行的,必须要被可执行文件调用才能实现功能。
  动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。这些库函数的扩展名是 ”.dll"、".ocx"(包含ActiveX控制的库)或者 ".drv"(旧式的系统驱动程序)。
  动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 文件中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。
  使用动态链接库可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您有一个大型网络游戏,如果把整个数百MB甚至数GB的游戏的代码都放在一个应用程序里,日后的修改工作将会十分费时,而如果把不同功能的代码分别放在数个动态链接库中,您无需重新生成或安装整个程序就可以应用更新。
  可执行文件 (executable file) 指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。
  在windows操作系统下,可执行程序可以是 .exe文件 .sys文件 .com等类型文件。
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
匿名用户
2013-08-11
展开全部
你的理解几乎99%都是正确的,但是要注意,DLL至少有一个或多个入口点。它本身没有内存空间,但是它实例化的对象是占用内存空间的。------------------有些功能必须写DLL?这个不一定,这取决于需求。对于绝大多数程序来说,写DLL是为了更好的功能模块重用,而不是每次都去写新的代码。如果你了解一点面向对象的开发理念,就能理解这种重用的概念了,这叫做封装。当然,有些程序是必须通过DLL来实现的,比如,我要达到某种见不得人的目的,但是不能创建新的进程,因为会被别人发现,所以我决定,把我写的功能封装成DLL,然后注入到系统进程中去,让操作系统来帮我达到目的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式