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