电脑常识文选 | QQ专区 | 硬件Diy | 电脑教程 | 电脑应用 | 网络应用 | Office | 操作系统 | 电脑学习 | 电脑知识库 | 网页制作 | 应用软件 | 电脑硬件
电脑故障 | 电脑网络 | 病毒防治 | 安全防护 | 电脑爱好者 | 电脑知识 | 软件应用 | 电脑医生 | cpu | 主板 | 硬盘 | 内存 | 显卡 | 显示器 | 键盘鼠标
本文相关内容
·动手解决电脑散热中容易被忽视的致命性问题
·定制迅雷文件后缀 减少软件查毒时间
·顶级〈一级〉域名+PHP+MYSQL空间 疯狂免费抢注
·丁磊:网络首富是副产品
·杜绝陷阱 冷静接招 个人购机实战窍门
·杜绝IPC$漏洞
·对付木马:空手入白刃 谁动了我的电脑系统
·对付硬盘坏道利器Disk Genius
·对“缓存”的全面理解和优化
·恶意网页病毒十三大症状分析及简单修复方法
·段思思
·短信资金诈骗惊心动魄
·短信诈骗迭出,拇指经济急需维护
·短信幽默大全(中 部)
·短信幽默大全(下 部)
·动态嵌入式DLL木马发现与清除
·动态编译实例代码
·动网论坛首页调用
·动网后台也可以这样玩
·洞悉所有系统的启动盘
·洞悉操作系统启动盘
·二十六个英文字母的爱情释义
·二十年遇到八句话
·二十、让系统资源再多一些
·二十部电影见证成长之痛:男人要做的十件事
·二“珑”相争---特丽珑和钻石珑的区别
·访问权限不再头疼
·防伪绝招-正品Kingston辨别技巧
·防止垃圾邮件用你的邮件服务器转发
·防止IE浏览器被恶意修改的小技巧
  ★动态链接库文件DLL

动态链接库文件DLL

添加记录: 电脑教程  类别: 电脑教程  发布日期: 2006.09.20

一、动态链接库的概念

  动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用。

  动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。换句话说,函数和过程的代码就在程序的exe文件中,该文件包含了运行时所需的全部代码。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。而动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系。当要执行所调用DLL中的函数时,根据链接产生的重定位信息,Windows才转去执行DLL中相应的函数代码。

  一般情况下,如果一个应用程序使用了动态链接库,Win32系统保证内存中只有DLL的一份复制品,这是通过内存映射文件实现的。DLL首先坏魅隬in32系统的全局堆栈,然后映射到调用这个DLL的进程地址空间。在Win32系统中,每个进程拥有自己的32位线性地址空间,如果一个DLL被多个进程调用,每个进程都会收到该DLL的一份映像。与16位Windows不同,在Win32中DLL可以看作是每个进程自己的代码。

  二、动态链接库的优点

  1. 共享代码、资源和数据

   使用DLL的主要目的就是为了共享代码,DLL的代码可以被所有的Windows应用程序共享。

  2. 隐藏实现的细节

   DLL中的例程可以被应用程序访问,而应用程序并不知道这些例程的细节。

  3. 拓展开发工具如Delphi的功能

  由于DLL是与语言无关的,因此可以创建一个DLL,被C++、VB或任何支持动态链接库的语言调用。这样如果一种语言存在不足,就可以通过访问另一种语言创建的DLL来弥补。

  三、动态链接库的实现方法

  1. Load-time Dynamic Linking

  这种用法的前提是在编译之前已经明确知道要调用DLL中的哪几个函数,编译时在目标文件中只保留必要的链接信息,而不含DLL函数的代码;当程序执行时,利用链接信息加载DLL函数代码并在内存中将其链接入调用程序的执行空间中,其主要目的是便于代码共享。

  2. Run-time Dynamic Linking

  这种方式是指在编译之前并不知道将会调用哪些DLL函数,完全是在运行过程中根据需要决定应调用哪个函数,并用LoadLibrary和GetProcAddress动态获得DLL函数的入口地址。

    

教你认识动态链接库DLL文件  
  

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


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

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

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

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

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

  有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Sy**ckup(系统备份文件夹)中找到该DLL文件,将其复制到System文件夹中。如果这样不行,在电脑启动时又总是出现“***dll文件丢失……”的提示框,你可以在“开始/运行”中运行Msconfig,进入系统配置实用程序对话框以后,单击选择“System.ini”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。


(出处:http://www.8s8s.net)



上一篇:动态链接库(DLL)初始化例程失败 下一篇:动态嵌入式DLL木马的发现及清除

电脑常识文选风云榜
声卡音箱 | 软驱光驱 | 打印机 | 机箱电源 | BIOS | 操作系统 | 局域网 | 浏览器 | 网卡 | 电脑死机

电脑常识文选 © 2006 版权所有

提示:本站致力于电脑使用常识,电脑故障排除,计算机使用小窍门的分享与传播,内容仅供参考,按此操作责任自负。