我的编程空间,编程开发者的网络收藏夹
学习永远不晚

dll文件指的是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

dll文件指的是什么

本篇文章为大家展示了dll文件指的是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

DLL是Dynamic Link Library的缩写,意为动态链接库。DLL文件一般被存放在C:WindowsSystem目录下。DLL是一个包含可由多个程序同时使用的代码和数据的库。

在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL 文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。

例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。

通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。

此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。

Windows 操作系统中的一些作为 DLL 实现的文件

1、ActiveX 控件 (.ocx) 文件

ActiveX 控件的一个示例是日历控件,它使您可以从日历中选择日期。

2、控制面板 (.cpl) 文件

cpl 文件的一个示例是位于控制面板中的项。每个项都是一个专用 DLL。

3、设备驱动程序 (.drv) 文件

设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序。

程序使用 DLL 的优点

1 使用较少的资源

当多个程序使用同一个函数库时,DLL 可以减少在磁盘和物理内存中加载的代码的重复量。这不仅可以大大影响在前台运行的程序,而且可以大大影响其他在 Windows 操作系统上运行的程序。

2 推广模块式体系结构

DLL 有助于促进模块式程序的开发。这可以帮助您开发要求提供多个语言版本的大型程序或要求具有模块式体系结构的程序。模块式程序的一个示例是具有多个可以在运行时动态加载的模块的计帐程序。

3 简化部署和安装

当 DLL 中的函数需要更新或修复时,部署和安装 DLL 不要求重新建立程序与该 DLL 的链接。此外,如果多个程序使用同一个 DLL,那么多个程序都将从该更新或修复中获益。当您使用定期更新或修复的第三方 DLL 时,此问题可能会更频繁地出现。

1、如何了解某应用程序使用哪些DLL文件

右键单击该应用程序并选择快捷菜单中的“快速查看”命令,在随后出现的“快速查看”窗口的“引入表”一栏中你将看到其使用DLL文件的情况。

2、如何知道DLL文件被几个程序使用

运行Regedit,进入 HKEY_LOCAL_MACHINESoftwareMicrosrftWindowsCurrentVersionSharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。

3、如何解决DLL文件丢失的情况

有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Sysbckup(系统备份文件夹)中找到该DLL文件,将其复制到System文件夹中。

如果这样不行,在电脑启动时又总是出现“***dll文件丢失……”的提示框,你可以在“开始/运行”中运行 Msconfig,进入系统配置实用程序对话框以后,单击选择“System.ini”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。

rundll的功能是以命令列的方式呼叫Windows的动态链结库。

Rundll32.exe与Rundll.exe的区别就在于前者是用于32位的链结库,后者是用于16位的链结库。rundll32.exe是专门用来调用dll文件的程序。

如果用的是Win98,rundll32.exe一般存在于Windows目录下;

如果用的WinXP,rundll32.exe一般存在于WindowsSystem32目录下。

若是在其它目录,就可能是一个木马程序,它会伪装成rundll32.exe。

DLL 故障排除工具

可以使用多个工具来帮助您解决 DLL 问题。以下是其中的部分工具。

1、Dependency Walker

Dependency Walker 工具可以递归扫描以寻找程序所使用的所有依赖 DLL。当您在 Dependency Walker 中打开程序时,Dependency Walker 会执行下列检查:

  • Dependency Walker 检查是否丢失 DLL。

  • Dependency Walker 检查是否存在无效的程序文件或 DLL。

  • Dependency Walker 检查导入函数和导出函数是否匹配。

  • Dependency Walker 检查是否存在循环依赖性错误。

  • Dependency Walker 检查是否存在由于针对另一不同操作系统而无效的模块。

通过使用 Dependency Walker,您可以记录程序使用的所有 DLL。这可能有助于避免和更正将来可能发生的 DLL 问题。当您安装 Microsoft Visual Studio 6.0 时,Dependency Walker 将位于以下目录中:
drive\Program Files\Microsoft Visual Studio\Common\Tools

2、DLL Universal Problem Solver

DLL Universal Problem Solver (DUPS) 工具用于审核、比较、记录和显示 DLL 信息。下表说明了组成 DUPS 工具的实用工具:

  • Dlister.exe:该实用工具枚举计算机中的所有 DLL,并且将此信息记录到一个文本文件或数据库文件中。

  • Dcomp.exe:该实用工具比较在两个文本文件中列出的 DLL,并产生包含差异的第三个文本文件。

  • Dtxt2DB.exe:该实用工具将通过使用 Dlister.exe 实用工具和 Dcomp.exe 实用工具创建的文本文件加载到 dllHell 数据库中。

  • DlgDtxt2DB.exe:该实用工具提供 Dtxt2DB.exe 实用工具的图形用户界面 (GUI) 版本。

DLL 的类型

当您在应用程序中加载 DLL 时,可以使用两种链接方法来调用导出的 DLL 函数。这两种链接方法是加载时动态链接和运行时动态链接。

1、加载时动态链接

在加载时动态链接中,应用程序像调用本地函数一样对导出的 DLL 函数进行显式调用。要使用加载时动态链接,请在编译和链接应用程序时提供头文件 (.h) 和导入库文件 (.lib)。当您这样做时,链接器将向系统提供加载 DLL 所需的信息,并在加载时解析导出的 DLL 函数的位置。

2、运行时动态链接

在运行时动态链接中,应用程序调用 LoadLibrary 函数或 LoadLibraryEx 函数以在运行时加载 DLL。成功加载 DLL 后,可以使用 GetProcAddress 函数获得要调用的导出的 DLL 函数的地址。在使用运行时动态链接时,无需使用导入库文件。

Win32 DLL的特点

Win32 DLL与 Win16 DLL有很大的区别,这主要是由操作系统的设计思想决定的。一方面,在Win16 DLL中程序入口点函数和出口点函数(LibMain和WEP)是分别实现的;而在Win32 DLL中却由同一函数DLLMain来实现。无论何时,当一个进程或线程载入和卸载DLL时,都要调用该函数,它的原型是

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved);

其中,***个参数表示DLL的实例句柄;第三个参数系统保留;

这里主要介绍一下第二个参数,它有四个可能的值:

  • DLL_PROCESS_ATTACH(进程载入),

  • DLL_THREAD_ATTACH(线程载入),

  • DLL_THREAD_DETACH(线程卸载),

  • DLL_PROCESS_DETACH(进程卸载)

在DLLMain函数中可以对传递进来的这个参数的值进行判别,并根据不同的参数值对DLL进行必要的初始化或清理工作。举个例子来说,当有一个进程载入一个DLL时,系统分派给DLL的第二个参数为DLL_PROCESS_ATTACH,这时,你可以根据这个参数初始化特定的数据。

另一方面,在Win16环境下,所有应用程序都在同一地址空间;而在Win32环境下,所有应用程序都有自己的私有空间,每个进程的空间都是相互独立的,这减少了应用程序间的相互影响,但同时也增加了编程的难度。大家知道,在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的;而在Win32环境中,情况却发生了变化,当进程在载入DLL时,系统自动把DLL地址映射到该进程的私有空间,而且也复制该DLL的全局数据的一份拷贝到该进程空间,也就是说每个进程所拥有的相同的DLL的全局数据其值却并不一定是相同的。

因此,在Win32环境下要想在多个进程中共享数据,就必须进行必要的设置。亦即把这些需要共享的数据分离出来,放置在一个独立的数据段里,并把该段的属性设置为共享。

上述内容就是dll文件指的是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

dll文件指的是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

dll文件指的是什么

本篇文章为大家展示了dll文件指的是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。DLL是Dynamic Link Library的缩写,意为动态链接库。DLL文件一般被存放在C:Windows
2023-06-17

电脑的dll文件是什么

DLL(Dynamic Link Library)文件是Windows操作系统中的一种共享库文件,用于存储一组函数和数据,供多个程序共享使用。DLL文件可以包含各种功能,如图形处理、网络通信、数据库访问等。通过将常用的功能封装到DLL文件中
2023-10-21

dat文件指的是什么文件

这篇文章将为大家详细讲解有关dat文件指的是什么文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。dat文件可以按照扩展名来看就是DATA的意思,即数据文件,这类文件并没有进行绝对化的定义,例如VCD光盘
2023-06-06

xllive指的是什么文件

这篇文章主要介绍xllive指的是什么文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!xllive文件是迅雷应用程序升级包中的文件,迅雷应用升级时会下载该类文件,最后借助于该类文件实现升级。迅雷升级方法:首先打开迅
2023-06-14

tmp文件指的是什么

本文小编为大家详细介绍“tmp文件指的是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“tmp文件指的是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。tmp是什么文件:答:tmp文件是Windows产生的
2023-07-02

amr指的是什么文件

这篇文章给大家分享的是有关amr指的是什么文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。amr是一个文件格式,存储AMR语音编码文件;很多手机允许用户存储短时间的AMR格式录音,而部分开源和商业软件有和其他格
2023-06-08

vbs指的是什么文件

小编给大家分享一下vbs指的是什么文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vbs是基于Visual Basic的脚本语言,VBS的全称是“Microsoft Visual Basic Script Edition
2023-06-06

esd文件指的是什么

这篇文章主要介绍esd文件指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!esd文件是微软在windows8开始后,通过在线分发windows副本时采用的文件格式;Esd是一种具有更高压缩率的文件格式,并且比
2023-06-06

dump文件指的是什么

这篇文章主要介绍了dump文件指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Dump文件又叫内存转储文件或者叫内存快照文件,是进程的内存镜像,是用来给驱动程序编写人
2023-06-14

org指的是什么文件

这篇文章给大家分享的是有关org指的是什么文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。org是游戏系统里自己调用的文件,一般来说除了本游戏,是无法另外打开的;而org在汇编语言中是一条指令,其作用是告诉汇编
2023-06-14

r.java指的是什么文件

这篇文章主要介绍r.java指的是什么文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!R.java文件是编译器自动生成的,它无需开发人员对其进行维护。R.java会自动收录当前应用中所有的资源,并根据这些资源建立对
2023-06-20

mydrivers指的是什么文件

小编给大家分享一下mydrivers指的是什么文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MyDrivers是安装驱动精灵的时候生成的文件夹,默认d盘,用于
2023-06-09

ppkg指的是什么文件

这篇文章的内容主要围绕ppkg指的是什么文件进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!ppkg是指usmt.ppkg文件,是一个系统备份文件,可
2023-06-28

win10缺少dll文件是什么原因造成的

在Windows 10中缺少DLL文件可能是以下原因造成的:1. 程序或应用程序错误:某些程序可能依赖于特定的DLL文件,如果该文件被删除、移动或损坏,就会导致缺少DLL文件的错误。2. 恶意软件感染:某些恶意软件可能会删除、替换或破坏系统
2023-10-18

libs指的是什么文件夹

这篇文章主要介绍了libs指的是什么文件夹,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。libs文件夹存放的是软件连接文件和库文件,对于软件是否能够正常地启动有着决定性的作用
2023-06-13

linux swp文件指的是什么

这篇文章主要介绍了linux swp文件指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。linux swp文件是一种后缀为“.swp”的文件,该文件是在当使用vi或者
2023-06-25

backup指的是什么文件夹

这篇文章主要介绍backup指的是什么文件夹,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!backup文件也叫系统备份文件,它的做作用是拷贝到存储介质上的文件,可以帮助保护数据,以防其在系统硬件或存储介质出现故障时受
2023-06-14

linux c文件指的是什么

本篇内容主要讲解“linux c文件指的是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux c文件指的是什么”吧!linux c是字符设备文件;字符设备
2023-04-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录