- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DLL技术应用 - 零基础入门学习Delphi044
DLL技术应用 动态连接库(Dynamic Link Library,DLL)是实现Windows应用程序代码重用和共享的重要手段,它是从C语言函数库和Pascal语言的库单元的概念发展起来的。 在C和Pascal语言中,很多标准函数可以放在一个函数库中或一个库单元中,在用户程序中可以调用这些库单元或函数库中的函数。 在程序编译的时候,由编译器把所调用的函数添加到可执行文件中去(即每个调用均会产生一个函数代码的拷贝)。 DLL技术应用 但是随着时代的发展,改革开放的到来,使用函数库或库单元等方法已不能适用Windows多任务环境下应用程序。 因为使用这种方法每个应用程序都必须拥有完成屏幕输出、消息处理、内存管理、对话框操作都相同功能的函数,从而使应用程序非常庞大。 为解决这个问题,必须能使几个应用程序能共享函数的单一拷贝,DLL也就应运而生了。接下来小甲鱼将给大家好好介绍一下这门有用的技术。 DLL的概念 DLL是一个可以执行的并可以被多个Windows应用程序共享的程序模块(Module),模块中包含了一些可以被多个Windows应用程序或DLL共享的代码、数据和资源。 动态链接库不用重复编译或链接,一旦装入内存,DLL中的函数就可以被系统中的任何正在运行的应用程序所使用,而不必产生函数的多个拷贝。 DLL主要的用途是使应用程序可以在运行时刻载入其中的代码,而不是编译时连接到应用程序中。 DLL的概念 DLL文件的扩展名一般是dll,也可能是drv(设备驱动文件),sys(系统文件)和fon(字体资源文件)。 它和可执行文件(exe)很类似,区别在于,DLL文件中虽然包含了可执行代码却不能单独执行,只能由Windows应用程序直接或间接调用。 DLL类似于一般的运行函数库,但它与一般的运行库函数又有区别,区别主要在于,DLL与一般的函数库与应用程序链接的时机不同。 DLL的概念 DLL是在应用程序运行期间被链接进来的,而一般函数库是在应用程序使用链接器(Linker)链接文件时被链接进来的。 这两种链接方式分别称为动态链接与静态链接。 下面小甲鱼给大家介绍这两种链接方式的概念。 。。。。。。 。。。。 。。 。 静态链接 传统的库函数是通过静态链接链接到应用程序中的。这些库函数可能来自程序设计语言提供的标准库,也可能是由操作系统提供的API。 由应用程序源文件产生可执行文件,一般要经历两个过程: 一是将源程序编译成目标模块,在此阶段中,凡调用到库函数的地方都被标识为外部对象的引用; 二是把目标模块链接成EXE文件,该阶段将所有要用到的函数均拷贝一份,插入到应用程序的目标模块文件中,从而生成可执行文件。 静态链接 也就是说静态链接是将应用程序调用的库函数拷贝一份嵌入到应用程序的可执行文件中去。 No picture you say a j8! 动态链接 可见,使用静态链接每调用一个函数均会在可执行文件的目标代码中出现一个该函数代码拷贝,当多个应用程序调用相同的函数时,将会出现一个函数的多个拷贝,其缺陷是很明显的。 动态链接是指在把应用程序的目标代码链接成EXE文件时,没有将函数库中的函数拷贝到应用程序的可执行文件中,而是在程序运行时动态地加载所需的函数。采用动态链接方式的库文件就是动态链接库(DLL)。 动态链接 尽管链接器并不把动态链接的函数拷贝到可执行文件中,但是它仍然要清楚这些函数在什么地方以及怎样调用它们,为此需要引入库(Import Library)来帮助链接器使用DLL,引入库中包含了DLL中函数的重定位信息。 当应用程序使用了某个DLL中的一个函数时,链接器并不拷贝代码,而是从引入库中拷贝重定位信息,这些信息指示了运行期间在DLL的什么位置寻找所需的函数代码。 动态链接 在应用程序执行期间,这些重定位信息创建了一个正在执行的应用程序和在内存中的DLL之间的动态链接。 No picture you say a j8 动态链接 可见,在动态链接时,应用程序和所需的DLL均应加载进入内存,根据应用程序中的重定位信息找到DLL中相应的函数,从而可以执行该函数功能以完成函数的调用。 当多个应用程序调用同一个DLL文件中的同一个函数时,不会生成该函数的多个拷贝,DLL文件也只在内存中存在一份,因此使用DLL不但便于应用程序之间共享代码,而且有利于节省内存。 小甲鱼给大家总结一下DLL的优点促进大家消化。 使用DLL 的优点 第一,应用范围广。 DLL中不仅可以包含可执行代码,还可以包括数据和各种资源等,这扩大了库文件的使用范围。有些设备驱动程序也是由动态链接库实现的(扩展名一般是drv) 第二,便于开发大型软件。 一个大型系统,如果用一个可执行文件完成,程序将很庞大且冗杂。如果将程序分成一系列的主程序和DLL,可以减少开发
您可能关注的文档
- Dealing With AIDS 大学英语精读 教学课件.ppt
- Deductive Research 大学论文写作课课件(英文).ppt
- denisi_HR_1e_PPTs_ch02 人力资源管理 外教 课件.ppt
- denisi_HR_1e_PPTs_ch01 人力资源管理 外教 课件.ppt
- denisi_HR_1e_PPTs_ch05 人力资源管理 外教 课件.ppt
- denisi_HR_1e_PPTs_ch06 人力资源管理 外教 课件.ppt
- denisi_HR_1e_PPTs_ch07 人力资源管理 外教 课件.ppt
- DES 信息安全概论课件与复习提纲.ppt
- Deutschland 德语教学课件.doc
- Dickinson 高等教育出版社 美国文学选读课件.ppt
- Division 4 Renaissance Reformation Introduction 欧洲文化教学课件.ppt
- DM004石材地面 装饰施工分项作业培训教材 教学课件.ppt
- DM500S挂接硬盘后即时录像、播放快速方法.doc
- Do you want to know some typical IC Packages 扩展知识 数字电子技术基础 教学课件.ppt
- DNA的结构和复制 高中生物课件.ppt
- Dr.Web+CureIt!+图文教程.doc
- DNA分型技术在刑事案件中的应用 法医学专家讲座.ppt
- DSP讲义1章0602 第1章:TMS320LF240x概述 上海 理工 DSP 课件.ppt
- DSP讲义2章0602-1 第2章 TMS320LF240x内部资源介绍 上海 理工 DSP 课件.ppt
- DSP讲义8章0602 第8章:模数转换ADC模块 上海 理工 DSP 课件.ppt
最近下载
- 2025年行政执法考试-广西行政执法考试近5年真题荟萃附答案.docx
- 车辆通行费收费员《高速公路收费员考试答案》模拟练习卷(一).doc VIP
- 广东初中生物会考试卷2025 .pdf VIP
- 2024年5月辽宁省公务员考试公安联考结构化面试真题试题试卷答案解析9套全.doc VIP
- 第十五届成图-道桥类-国赛三维建模.pdf VIP
- 2025年河南机电职业学院单招职业适应性测试题库及一套答案.docx
- 入党志愿书(全电子版).pdf VIP
- NB_T 47013.3-2023 承压设备无损检测 第3部分:超声检测.pdf
- 重庆育才中学教育集团初2023-2024学年七年级下学期语文期中试卷(含答案).pdf VIP
- 110kV地区性变电站电气一次部分设计.doc
文档评论(0)