精华内容
下载资源
问答
  • dll文件是什么

    2016-11-14 20:58:00
    dll实际上动态链接库的缩写,从windows1.0开始,动态链接库就是整个操作系统的基础,那么这有什么作用呢?在dos时代,程序员通过编写程序来达到预期的目的的,每实现一个目的就需要编写一个程序,这样下去,简单...

    dll实际上是动态链接库的缩写,从windows1.0开始,动态链接库就是整个操作系统的基础,那么这有什么作用呢?在dos时代,程序员是通过编写程序来达到预期的目的的,每实现一个目的就需要编写一个程序,这样下去,简单的还好,要是复杂的程序话,那乞不是既浪费时间,又浪费青春。于是聪明的程序员们想出了一个办法,把的实现一定功能的程序模块存放在一个文件当中,以API函数形式存放在dll当中,当编写程序的时候,需要用到这个功能,那么直接从这个文件当中调用就可以了,于是就出现了dll——动态连接库。

     

    程序员把一些模块压入dll文件之后,在要运行程序的时候只需要调用动态链接库就可以了,而并不需要把dll加载到内存中,节省了大量的内存空间,可以方便运行其他的程序,

    转载于:https://www.cnblogs.com/cross-yan/p/6063421.html

    展开全文
  • DLL文件是什么 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL...

    ①DLL文件是怎么产生的

    许多应用程序被分割成一些相对独立的动态链接库,放置于系统中,就产生了DLL文件

     

    ②DLL文件是什么

    DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。

     

    ③DLL文件有什么用

    DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积。

    Windows操作系统中,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。
    通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个记账程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
    此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程序就可以应用更新。

    转载于:https://www.cnblogs.com/baxianhua/p/9083048.html

    展开全文
  • 详细介绍dll文件是什么 2011-07-13 16:14 佚名 互联网 我要评论(0) 字号:T | T 本文介绍的是以DLL结尾的文件,主要介绍的是DLL的概念,特点和使用DLL的好处等,希望对大家有帮助,一起来看。 AD: ...
     
    

    详细介绍dll文件是什么

    2011-07-13 16:14 佚名 互联网 我要评论(0) 字号:T | T
    一键收藏,随时查看,分享好友!

    本文介绍的是以DLL结尾的文件,主要介绍的是DLL的概念,特点和使用DLL的好处等,希望对大家有帮助,一起来看。

    AD:


    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时,都要调用该函数,它的原型是

    1. 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文件有进一步的了解。

    展开全文
  • DLL文件是什么?有几种调用方式?

    千次阅读 2015-11-06 11:47:51
    一、DLL文件是什么?DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL...

    一、DLL文件是什么?

    DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。

    意义

    DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积

    通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。

    二、调用方式

    1、静态调用方式:

    编译系统完成对 DLL 的加载和应用程序结束时 DLL 卸载的编码(如还有其它程序使用该 DLL,则 Windows 对 DLL 的应用记录减1,直到所有相关程序都结束对该 DLL 的使用时才释放它,简单实用,但不够灵活,只能满足一般要求。

    隐式的调用:需要把产生动态连接库时产生的 .LIB 文件加入到应用程序的工程中,想使用 DLL 中的函数时,只须说明一下。隐式调用不需要调用 LoadLibrary() 和 FreeLibrary()。程序员在建立一个 DLL 文件时,链接程序会自动生成一个与之对应的 LIB 导入文件。该文件包含了每一个 DLL 导出函数的符号名和可选的标识号,但是并不含有实际的代码。LIB 文件作为 DLL 的替代文件被编译到应用程序项目中。

    当应用程序运行过程中需要加载 DLL 文件时,Windows 根据这些信息发现并加载 DLL,然后通过符号名或标识号实现对 DLL 函数的动态链接。所有被应用程序调用的 DLL 文件都会在应用程序 EXE 文件加载时被加载在到内存中。可执行程序链接到一个包含 DLL 输出函数信息的输入库文件(.LIB文件)。操作系统在加载使用可执行程序时加载 DLL。可执行程序直接通过函数名调用 DLL 的输出函数,调用方法和程序内部其 它的函数是一样的。

    2、动态调用方式:

    是由编程者用 API 函数加载和卸载 DLL 来达到调用 DLL 的目的,使用上较复杂,但能更加有效地使用内存,是编制大型应用程序时的重要方式。

    显式的调用:是指在应用程序中用 LoadLibrary 或 MFC 提供的 AfxLoadLibrary 显式的将自己所做的动态连接库调进来,动态连接库的文件名即是上面两个函数的参数,再用 GetProcAddress() 获取想要引入的函数。自此,你就可以象使用如同本应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前,应该用 FreeLibrary 或 MFC 提供的 AfxFreeLibrary 释放动态连接库。直接调用 Win32 的 LoadLibary 函数,并指定 DLL 的路径作为参数。LoadLibary 返回 HINSTANCE 参数,应用程序在调用 GetProcAddress 函数时使用这一参数。GetProcAddress 函数将符号名或标识号转换为 DLL 内部的地址。程序员可以决定 DLL 文件何时加载或不加载,显式链接在运行时决定加载哪个 DLL 文件。使用 DLL 的程序在使用之前必须加载(LoadLibrary)加载DLL从而得到一个DLL模块的句柄,然后调用 GetProcAddress 函数得到输出函数的指针,在退出之前必须卸载DLL(FreeLibrary)。

    正因为DLL 有占用内存小,好编辑等的特点有很多电脑病毒都是DLL格式文件。但不能单独运行。

    动态链接库通常都不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其它DLL调用来完成某项工作的函数。只有在其它模块调用动态链接库中的函数时,它才发挥作用。

    展开全文
  • 【重构】dll文件是什么

    热门讨论 2015-06-07 21:59:26
    DLL文件又称"应用程序拓展",软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会...
  • .DLL文件是什么?

    2011-03-25 09:33:00
    这个应该不能打开的DLLDynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用...一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件。DLL文...
  • 我是不是在本地项目的bin文件夹里面的(CmsShop.Base.Controllers.dll)复制,然后粘 贴到服务器的项目bin里的(CmsShop.Base.Controllers)直接把它覆盖就可以了。 ![图片说明]...
  • DLL文件是什么东东?

    2009-01-03 19:11:00
    动态链接库(Dynamic Link Library,缩写:DLL一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的程序或资源。它和可执行文件非常类似,区别在于动态链接库中虽然包含了可执行代码却不能单独...
  • 什么是DLL文件

    2009-02-25 10:40:35
    DLLDynamic Link Library的缩写,意为动态链接库,DLL文件即动态链接库文件,一种可执行文件,DLL多数情况下带有DLL扩展名的文件,但也可能EXE或其他扩展名。DLL文件允许程序共享执行特殊任务所必需的代码和...
  • DLL文件分析

    2021-01-18 21:13:58
    二、DLL文件是什么? DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即...
  • DLL是什么文件

    2011-01-18 15:44:00
    DLL文件即动态链接库文件,一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。DLL多数情况下带有...
  • dll文件

    2015-08-05 09:34:46
    1、dll文件是什么 dll即dynamic link library(动态链接库)的简称,在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我
  • LIB文件和DLL文件有什么不同 (1)lib是编译时需要的,dll是运行时需要的。...lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体
  • 通过c#谢了一个很简单的Activex控件,调用dll文件(dll文件是c++写的,并且dll文件不是com组件),在普通的容器中调用动态库都没问题,但是通过activex时就会出错,请问这是问什么,请留言,也可以加我qq:574225218
  • win7电脑libeay32.dll文件丢失的几种解决方法 Win7系统libeay32.dll文件丢失解决方法 解决方法一 1遇到这样的情况有几种解决方法可根据自已当情况来选择最简单的方法直接在网上下载一个libeay32.dll文件注意要与...
  • GACGlobal Assembly Cache的缩写,位于:[system root]\windows\assembly这个目录下,部署到GAC的意思就是把Dll文件kopy到这个目录中。注意,只有经过强命名的Dll文件才可以被复制进来。 转载于:...
  • 相信大家都遇见过:在删除一些软件的时候弹出某某文件正在运行或磁盘写保护不能删除这样的报错提示吧。而常常删除不掉的都一些后缀为.dll的...到底这个dll文件是什么文件,如何才能知道是哪些程序在调用这个dll文件呢?
  • .dll文件什么用?

    2012-05-07 15:41:00
    DLL文件即动态链接库文件,一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。 DLL多数情况下带...
  • 我发布在正式库和测试库的文件都一样,发布时间都相同,测试库能够实现功能, 但正式库无法实现功能,我将测试库的所有dll替换掉正式库的dll后,正式库的功能 能够实现了,这是洒满情况?是什么原因损坏了dll文件
  • 首先,我们需要知道lib文件和dll文件是什么东西,这里我不具体介绍,具体的信息大家可以去找一些书籍看看,这里我做个简单的介绍,lib文件是windows平台下的静态库,dll文件是windows平台下的动态链接库,这两个概念...
  • .so 和 .dll文件

    千次阅读 2018-05-08 16:24:40
    记得很早之前有一个很流行的病毒,就是...还有一次接触dll是在刚开始使用tomcat的时候,运行tomcat报错,但是可以成功启动tomcat,当时觉得非常奇怪,就上网查,说缺少一个dll文件,然后当时就去查了下dll文件是什么...
  • 什么注册DLL文件

    2010-04-04 14:51:13
    DLL文件即动态链接库文件,一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。 DLL多数情况下带有...
  • 今天遇到一个问题,就是在要确定一个C#项目中正在使用的一个dll文件是什么模式编译的。因为Debug和Release两种模式编译出的DLL,混用会有一定的风险。我在网上查了一些资料,最终找到了这篇文章: ...
  • <p>And would love to try and use <code>syscall.NewLazyDLL</code> but my issue is my foo.go file is calling C.SomeMethod() and inside that method it makes calls to the methods inside the DLL....
  • PAGE / NUMPAGES 一 动态链接库 什么是动态链接库DLL三个字母对于你来说一定很熟悉吧它Dynamic Link Library 的缩写形式动态链接库 (DLL) 作为共享函数库的可执行文件动态链接提供了一种方法使进程可以调用不...
  • 什么是文件dll,百度百科上: 库文件一般分两种,一种静态库,另一种动态库即DLL(Dynamic Link Library)文件,又叫动态链接库文件。静态库和动态库的区别:静态库在程序的链接阶段被复制到了程序中;动态...
  • DLL搜索顺序: 当前进程的可执行模块所在的目录。 当前目录。 Windows系统目录。GetSystemDirectory函数检索此目录的路径。 Windows目录。...最简单的第1个,放到exe文件所在的目录...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,855
精华内容 1,942
关键字:

dll文件是什么