感悟网 导航

什么是DLL档案?有何作用?

作者&投稿:朱砍 (若有异议请与网页底部的电邮联系)
~

什么是DLL档案?有何作用?

DLL档案(Dynamic Linkable Library 即动态连结库档案),是一种不能单独执行的档案,它允许程式共享执行特殊任务所必需的程式码和其他资源
比较大的应用程式都由很多模组组成,这些模组分别完成相对独立的功能,它们彼此协作来完成整个软体系统的工作。可能存在一些模组的功能较为通用,在构造其它软体系统时仍会被使用。在构造软体系统时,如果将所有模组的原始码都静态编译到整个应用程式 EXE 档案中,会产生一些问题:一个缺点是增加了应用程式的大小,它会占用更多的磁碟空间,程式执行时也会消耗较大的记忆体空间,造成系统资源的浪费;另一个缺点是,在编写大的 EXE 程式时,在每次修改重建时都必须调整编译所有原始码,增加了编译过程的复杂性,也不利于阶段性的单元测试。
Windows 系统平台上提供了一种完全不同的较有效的程式设计和执行环境,你可以将独立的程式模组建立为较小的 DLL 档案,并可对它们单独编译和测试。在执行时,只有当 EXE 程式确实要呼叫这些 DLL 模组的情况下,系统才会将它们装载到记忆体空间中。这种方式不仅减少了 EXE 档案的大小和对记忆体空间的需求,而且使这些 DLL 模组可以同时被多个应用程式使用。Windows 自己就将一些主要的系统功能以 DLL 模组的形式实现。
一般来说,DLL 是一种磁碟档案,以.dll、.DRV、.FON、.SYS 和许多以 .EXE 为副档名的系统档案都可以是 DLL。它由全域性资料、服务函式和资源组成,在执行时被系统载入到呼叫程序的虚拟空间中,成为呼叫程序的一部分。如果与其它 DLL 之间没有冲突,该档案通常对映到程序虚拟空间的同一地址上。DLL 模组中包含各种汇出函式,用于向外界提供服务。DLL 可以有自己的资料段,但没有自己的堆叠,使用与呼叫它的应用程式相同的堆叠模式;一个 DLL 在记忆体中只有一个例项;DLL 实现了程式码封装性;DLL 的编制与具体的程式语言及编译器无关。
在 Win32 环境中,每个程序都复制了自己的读/写全域性变数。如果想要与其它程序共享记忆体,必须使用记忆体对映档案或者宣告一个共享资料段。DLL 模组需要的堆叠记忆体都是从执行程序的堆叠中分配出来的。Windows 在载入 DLL 模组时将程序函式呼叫与 DLL 档案的汇出函式相匹配。Windows 作业系统对 DLL 的操作仅仅是把 DLL 对映到需要它的程序的虚拟地址空间里去。DLL 函式中的程式码所建立的任何物件(包括变数)都归呼叫它的执行绪或程序所有。
呼叫方式:
1、静态呼叫方式:由编译系统完成对 DLL 的载入和应用程式结束时 DLL 解除安装的编码(如还有其它程式使用该 DLL,则 Windows 对 DLL 的应用记录减1,直到所有相关程式都结束对该 DLL 的使用时才释放它,简单实用,但不够灵活,只能满足一般要求。
隐式的呼叫:需要把产生动态连线库时产生的 .LIB 档案加入到应用程式的工程中,想使用 DLL 中的函式时,只须说明一下。隐式呼叫不需要呼叫 LoadLibrary() 和 FreeLibrary()。程式设计师在建立一个 DLL 档案时,连结程式会自动生成一个与之对应的 LIB 汇入档案。该档案包含了每一个 DLL 汇出函式的符号名和可选的标识号,但是并不含有实际的程式码。LIB 档案作为 DLL 的替代档案被编译到应用程式专案中。
当程式设计师通过静态连结方式编译生成应用程式时,应用程式中的呼叫函式与 LIB 档案中汇出符号相匹配,这些符号或标识号进入到生成的 EXE 档案中。LIB 档案中也包含了对应的 DL L档名(但不是完全的路径名),连结程式将其储存在 EXE 档案内部。
当应用程式执行过程中需要载入 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呼叫来完成某项工作的函式。只有在其它模组呼叫动态连结库中的函式时,它才发挥作用。
打得累死了,大哥你多给积分吧

ws2_32.dll档案有何作用?

ws2_32.dll是Windows Sockets应用程式介面, 用于支援Inter和网路应用程式。程式执行时会自动呼叫ws2_32.dll档案,ws2_32.dll是个动态连结库档案位于系统资料夹中。Windows在查询动态连结库档案时会先在应用程式当前目录搜寻,如果没有找到然后才会搜寻Windows所在目录;如果还是没有会搜寻system32和system目录。

什么是JC档案 ,有何作用

那是用"网际快车(以前叫Jetcar,现在叫Flashget)下载的档案没有下载完毕而形成的档案,就会成为字尾名为.jc的档案.
作用:
就跟晚自习时到图书馆占座位差不多,根据下载档案的大小,在硬碟上占一个空间。下载完整无缺后,自动就会将JC去掉。

什么是LOG档案,有何作用?

是日志档案,
你可以开始里,执行,输入cmd
在cmd里打命令 del c:\windons\*.log
del c:\windows\*.txt
这些都是日志

什么是ini档案,有何作用?

.ini 档案是Initialization File的缩写,即初始化档案,是windows的系统配置档案所采用的储存格式,统管windows的各项配置,一般使用者就用windows提供的各项图形化管理介面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉windows才能去直接编辑。开始时用于WIN3X下面,WIN95用登录档代替,以及后面的内容表示一个节,相当于登录档中的键。
ini , .inc之类的档案,一般是放一些常量或资料库连结语句等,再在需要的页面包含进去,和直接命为 asp 是没什么区别的。

*.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不是独立执行的程式,它是某个程式的一个部分,它只能由所属的程式呼叫。使用者不能,也不需要开启它。

NPPTools.dll是什么档案?有何作用?win7支援吗?

npptools.dll --- NPP 工具助手 DLL右点它可以设定使用者许可权,就可以禁止修改NPP,换个说法就是防ARP欺骗。 之前用P2P控制的时候下载过 win7支援

dll是什么档案 dll档案的作用

dll档案有什么用呢?作为电脑爱好者的我们都有必要了解,这也可以为后期遇到的相关电脑问题解决提供一定的基础知识,因为有不少电脑问题都可能会涉及到dll档案程式,比如常见的电脑不能玩某游戏,提示找不到xx.dll或xx.dll缺失等。下面我们来详细介绍下dll是什么档案。
概括的说,DLL是Dynamic Link Library的缩写,意为动态连结库。DLL档案一般被存放在C:WindowsSystem目录下。DLL是一个包含可由多个程式同时使用的程式码和资料的库。因为在在Windows系统中,许多应用程式并不是一个完整的可执行档案,它们被分割成一些相对独立的动态连结库,即DLL档案,放置于系统中。当我们执行某一个程式时,相应的DLL档案就会被呼叫。一个应用程式可有多个DLL档案,一个DLL档案也可能被几个应用程式所共用,这样的DLL档案被称为共享DLL档案。例如,在 Windows 作业系统中,Comdlg32 DLL 执行与对话方块有关的常见函式。因此,每个程式都可以使用该 DLL 中包含的功能来实现开启对话方块。这有助于促进程式码重用和记忆体的有效使用。
√dll档案的作用
由于可以通过使用 DLL,程式可以实现模组化,由相对独立的元件组成。例如,一个计帐程式可以按模组来销售。可以在执行时将各个模组载入到主程式中(如果安装了相应模组)。因为模组是彼此独立的,所以程式的载入速度更快,而且模组只在相应的功能被请求时才载入。 此外,可以更为容易地将更新应用于各个模组,而不会影响该程式的其他部分。例如,您可能具有一个工资计算程式,而税率每年都会更改。当这些更改被隔离到 DLL 中以后,您无需重新生成或安装整个程式就可以应用更新。所以dll档案在程式中的最大作用是加速程式执行。
目前多数软体档案都设计都含有dll档案,主要是因为使用dll程式的软体有以下几个优点:
一:使用较少的资源
当多个程式使用同一个函式库时,DLL 可以减少在磁碟和实体记忆体中载入的程式码的重复量。这不仅可以大大影响在前台执行的程式,而且可以大大影响其他在 Windows 作业系统上执行的程式。 ·
推广模组式体系结构
二:DLL 有助于促进模组式程式的开发
这可以帮助您开发要求提供多个语言版本的大型程式或要求具有模组式体系结构的程式。模组式程式的一个示例是具有多个可以在执行时动态载入的模组的计帐程式。

winsock是什么档案?有何作用?

winsock是Windows平台下的网路套接字(Socket)介面。使用WINSOCK,可以很方便的建立网路连线或者侦听,然后接收和传送资料。
使用winsock API,可以编写基于各种网路协议(如TCP、UDP、IP)的应用程式。实际上Windows下多数要访问网路的程式其底层都呼叫了winsock API。winsock2的winsock API的dll档案是ws2_32.dll。

Favortes是个什么档案,有何作用

楼主 你漏打了一个 i FAVORITES中文是特别喜爱的意思!他是作为IE网面收藏夹用的,你比较喜欢的网站或用得多的会存在里面!
满意请采纳



《电脑档案中,应用程式扩充套件,是什么档案,可以删除吗?》
答:如何删除电脑上的“应用程式扩充套件”档案? 我感觉不应该删除 有些扩充套件程式,其他程式也会呼叫。而当该扩充套件程式处于使用状态时,是不允许删除的。 不再执行状态的也最好不要删除 如何删除型别为"应用程式扩充套件"dll的档案 按CTRL+ALT+DEL.开启工作管理员.你只要关闭它的程序,就可以删除...

《计算机中的文件拓展名都有那些,都代表什么意思啊?》
答:扩展名是文件名的一部分,每个文件的名中最后一个小点后边的部分(文件可以无扩展名)就是文件的扩展名,通常文件扩展名由3或4个不同的字符组成,可以是数字、字母、符号.你可以把文件的扩展名理解为是文件的“身份证”,不同的扩展名决定了不同文件类型和作用. 常用扩展名 A ACE:Ace压缩档案格式 ACT:Microsoft offi...

《Windows XP 提示出现rundll32.exe如何总是开机丢失?》
答:Rundll32.exe是什么?Rundll32进程是我们常能见到的一个进程,这个进程常会被病毒所利用,“执行32位的DLL文件”。它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用...

《什么是工作冗余系统和非工作冗余系统》
答:什么是系统中.DLL档案冗余? 冗余档案就是系统备分档案.格式有DLL和deb等. 动态连结库DLL档案即动态连结库档案,是一种可执行档案,它允许程式共享执行特殊任务所必需的程式码和其他资源。Windows提供的DLL档案中包含了允许基于Windows的程式在Windows环境下操作的许多函式和资源。 DLL档案即动态连结库档案,是一种可执行...

《desktop详细资料大全》
答:1: 管理工具资料夹里面的desk.ini中[LocalizedFileNames]这个什么意思? 答:[LocalizedFileNames]是“局限性档案名称称”也就是控制档案的标识。 2:一个desk.ini里面 [.shellclassinfo] LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21762 这个起什么作用? 前面LocalizedResourceName这个又是起什么作用...

《windows/staticial/cmss.dll是什么东东,要删吗?》
答:a、用Unlocker(最好的顽固软件删除工具),Unlocker 是一个免费的右键扩充工具,使用者在安装后,它便能整合于鼠标右键的操作当中,当使用者发现有某个档案或目录无法删除时,只要按下鼠标右键中的「Unlocker」,那么程序马上就会显示出是哪一些程序占用了该目录或档案,接着只要按下弹出的窗口中的「Unlock...

《C# system是什么程式》
答:编译C#的程式是什么? Visual Studio system 是什么程式? Svchost.exe档案存在于“%system root%\system32”(例如C:\Windows\system32)目录下,它是Windows NT核心的重要程序(Windows 9X没有该程序),专门为系统启动各种服务的。例如Svchost.exe呼叫rpcss.dll档案,就会启动rpcss服务(remote ...

《文件有很多种后缀名,哪位能给我讲讲那些后缀名各代表什么文件?~》
答:bat 批处理文件,在MS-DOS中,.bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用 bbs 电子告示板系统文章信息文件 bfc Windows的公文包文件 bin 二进制文件,其用途依系统或应用而定 bmp Bitmap位图文件,这是微软公司开发Paint的自身格式,可以被多种Windows和Windows NT平台及许多应用程序支持,支持...

《计算机的反应速度变慢是什么原因造成的了?》
答:有的程式会消耗大量的系统资源,即使把程式关闭,在记忆体中还是有一些没用的DLL档案在执行,这样就使得系统的执行速度下降。不过我们可以通过修改登录档键值的方法,使关闭软体后... 电脑用过几年后为什么会变慢?硬体方面的原因有哪些? 其他几位朋友说的都挺好哒!的确,在硬体配置不变的情况下,理论上你的电脑的执...

《将C函式程式封装成.so动态连结库怎么留介面》
答:标头档案simpleDLL.h: 原始档simpleDLL.cpp: c语言封装成的动态连结库 移植到C# 呼叫 函式指标怎么处理?急 可以使用吗??据我了解C# 好像不能直接使用C封装的东西吧?你去查查有没有类似的程式码?? c++动态连结的宣告和实现函式 怎么做成动态连结库 动态连结库的使用方法,动态连结库的动态呼叫(也叫显式呼叫)可...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网