.dll文件有啥用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.dll文件有啥用?相关的知识,希望对你有一定的参考价值。
.dll文件有什么用?
DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。
DLL的全称是Dynamic Link Library, 中文叫做“动态链接文件”。在Windows操作系统中, DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行。而有些DLL文件可以被许多程序共用。因此, 程序设计人员可以利用DLL文件, 使程序不至于太过巨大。但是当安装的程序越来越多, DLL文件也就会越来越多, 如果当你删除程序的时候, 没有用的DLL文件没有被删除的话, 久而久之就造成系统的负担了。
DLL是动态连接库。使用动态连接库的一些好处是:
1.多个应用程序共享代码和数据:比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态连接库实现的。
2.在钩子程序过滤系统消息时必须使用动态连接库。
3.动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与合作。而且,各个模块可以独立升级。如果小组中的一个成员开发了一组实用例程,他就可以把这些例程放在一个动态连接库中,让小组的其他成员使用。
4.为了实现应用程序的国际化,往往需要使用动态连接库。使用动态连接库可以将针对某一国家、语言的信息存放在其中。对于不同的版本,使用不同的动态连接库。在使用AppWizard生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同的动态连接库实现的。
VC++、C++ Builder、Delphi都可以编写DLL文件。Visual Basic 5.0以上版本也可以编写一种特殊的DLL,即ActiveX DLL。
DLL不是独立运行的程序,它是某个程序的一个部分,它只能由所属的程序调用。用户不能,也不需要打开它 参考技术A 是一个动态连接库
更多信息
什么是 DLL?
DLL 是一个包含可由多个程序同时使用的代码和数据的库。例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。
通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。
下表说明了 Windows 操作系统中的一些作为 DLL 实现的文件:• ActiveX 控件 (.ocx) 文件
ActiveX 控件的一个示例是日历控件,它使您可以从日历中选择日期。
• 控制面板 (.cpl) 文件
.cpl 文件的一个示例是位于控制面板中的项。每个项都是一个专用 DLL。
• 设备驱动程序 (.drv) 文件
设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序。
回到顶端
DLL 的优点
下表说明了当程序使用 DLL 时提供的一些优点:• 使用较少的资源
当多个程序使用同一个函数库时,DLL 可以减少在磁盘和物理内存中加载的代码的重复量。这不仅可以大大影响在前台运行的程序,而且可以大大影响其他在 Windows 操作系统上运行的程序。
• 推广模块式体系结构
DLL 有助于促进模块式程序的开发。这可以帮助您开发要求提供多个语言版本的大型程序或要求具有模块式体系结构的程序。模块式程序的一个示例是具有多个可以在运行时动态加载的模块的计帐程序。
• 简化部署和安装
当 DLL 中的函数需要更新或修复时,部署和安装 DLL 不要求重新建立程序与该 DLL 的链接。此外,如果多个程序使用同一个 DLL,那么多个程序都将从该更新或修复中获益。当您使用定期更新或修复的第三方 DLL 时,此问题可能会更频繁地出现。
回到顶端
DLL 依赖项
当某个程序或 DLL 使用其他 DLL 中的 DLL 函数时,就会创建依赖项。因此,该程序就不再是独立的,并且如果该依赖项被损坏,该程序就可能遇到问题。例如,如果发生下列操作之一,则该程序可能无法运行:• 依赖 DLL 升级到新版本。
• 修复了依赖 DLL。
• 依赖 DLL 被其早期版本覆盖。
• 从计算机中删除了依赖 DLL。
这些操作通常称为 DLL 冲突。如果没有强制实现向后兼容性,则该程序可能无法成功运行。
下表说明了为了帮助最大限度地减少依赖性问题而在 Microsoft Windows 2000 和较高版本的 Windows 操作系统中引入的更改:• Windows 文件保护
在 Windows 文件保护中,操作系统禁止未经授权的代理更新或删除系统 DLL。因此,当程序安装操作尝试删除或更新被定义为系统 DLL 的 DLL 时,Windows 文件保护将寻找有效的数字签名。
• 专用 DLL
通过专用 DLL 可以使程序避免遭受对共享 DLL 进行的更改。专用 DLL 使用版本特定信息或空 .local 文件来强制要求程序所使用的 DLL 的版本。要使用专用 DLL,请在程序根文件夹中查找 DLL。然后,对于新程序,请向该 DLL 中添加版本特定信息。对于旧程序,请使用空 .local 文件。每个方法都告诉操作系统使用位于程序根文件夹中的专用 DLL。
参考资料:http://support.microsoft.com/kb/815065/zh-cn
参考技术B 请参看页面右方“相关问题”。 参考技术C .dll是一个链接数据库,它起让个个文件还可执行文件链接下一级的东西! 参考技术D 简单的说:动态连接库.是为其他程序提供代码和资源.不要乱删!Jupyter Notebook 检查点文件有啥用?
【中文标题】Jupyter Notebook 检查点文件有啥用?【英文标题】:What are Jupyter Notebook checkpoint files for?Jupyter Notebook 检查点文件有什么用? 【发布时间】:2018-03-07 09:28:09 【问题描述】:除了原始的 Jupyter Notebook 文件(.ipynb
文件)之外,有时我会得到一个检查点 .ipynb
文件,它似乎直接链接到原始的 .ipynb
文件。
这些检查点文件的用途是什么?
以及是什么导致它们被生成(有时我得到这种检查点文件,有时我没有)?
【问题讨论】:
【参考方案1】:每次您创建 .ipynb
文件时,Jupyter 都会创建一个检查点文件,然后每次您手动保存初始 .ipynb
的进度时,它都会更新检查点文件。 p>
手动保存是通过单击保存和检查点按钮保存文件时所做的:
另一方面,自动保存仅更新初始 .ipynb
文件,而不是检查点文件。
当您使用 Revert to Checkpoint 按钮从初始 .ipynb
文件恢复到以前保存的检查点时,检查点文件就是在 Jupyter 中访问和打开的内容。
附带说明,检查点文件位于名为.ipynb_checkpoints
的隐藏文件夹中。此文件夹与初始 .ipynb
文件位于同一文件夹中。
【讨论】:
所以这本质上是一个简单的版本控制?很酷。 是的,没错,但正如你所说,一个简单的——它只保存你工作的最后一个版本。而且一旦恢复到上一个版本,就无法恢复到更旧的版本。 我没有看到任何 GUI 方法来获取差异,也没有看到有选择地从检查点提取内容的简单方法。 有关 diff 的一些想法,请参阅nbdime
和 Displaying Differences in Jupyter Notebooks – nbdime / nbdiff 和 Pondering a Jupyter Notebook “Diff”er Extension and Its Use as a Marking Tool – OUseful.Info, the blog…
不是版本控制,而是简单的备份。以上是关于.dll文件有啥用?的主要内容,如果未能解决你的问题,请参考以下文章