- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 动态链接库(DLLs)编程 动态链接库(Dynamic Link Library,简称DLL)是一些编译过的可执行代码模块,后缀名为.DLL,可以在应用程序中或其他DLL中被调用。 在Windows环境中,DLL可以实现多个应用程序共享代码和资源。 4.1? 动态链接库概述 4.2? 在Delphi中DLLs的编写 4.3? 在Delphi中DLLs的调用 4.4??利用DLLs实现窗体重用 4.5??利用DLLs实现数据传输 4.6??DLL与Delphi组件包 4.1 动态链接库概述 动态链接库(DLLs)是从C语言函数库和Pascal库单元的概念发展而来的。 所有的C语言标准库函数都存放在某一函数库中,同时用户也可以用LIB程序创建自己的函数库。 动态链接库不用重复编译或链接,一旦装入内存,DLLs函数可以被系统中的任何正在运行的应用程序软件所使用,而不必再将 DLLs函数的另一拷贝装入内存。 4.1.1 Windows系统的动态链接库 Windows本身就是由大量的动态链接库支持的。 这包括Windows API函数(KRNLx86.EXE,USER.EXE,GDI.EXE,…),各种驱动程序文件,各种带有.Fon和.Fot扩展名的字体资源文件等。 虽然在编写Windows程序时必然要涉及到DLLs,但利用Delphi,用户在大部分时候并不会注意到这一点。 这一方面是因为Delphi提供了丰富的函数使用户不必直接去使用Windows API; 另一方面即使使用Windows API,由于Delphi把API函数和其它Windows DLLs函数重新组织到了几个库单元中,因而也不必使用特殊的调用格式。 4.1.2 为什么使用DLL? 在Windows中使用动态链接库的一些原因: (1) 如果不同的程序使用相同的DLL,只需将DLL在内存中装载一次,这样节省了系统内存。 (2) 可以提供DLL的不同版本,代替当前的DLL。如果DLL中的子例程有相同的参数,可以用新版本的DLL运行程序,而不需要重新编译它。 这些通用的优点可以应用于多种情况中。如果我们有一些复杂算法,或一些复杂窗体,它们是多个应用程序所需要的,可以将它们存储在DLL中。 这样做,在同时运行多个使用该DLL的程序时,可以减小执行文件的规模,并节省一些内存。 此外,DLL被广泛地使用,还基于下面的一些原因: (1) DLL作为一种基于Windows的程序模块,不仅可以包含可执行代码,还可以包括数据和各种资源等,扩大了库文件的使用范围。 (2) DLL技术对于开发大型软件系统也有可用之处。 一个大型系统,如果用一个执行文件完成,程序将很庞大,而且可能有许多重复的功能。 如果将程序分成一系列的主程序和DLL,可以减少开发的工作量。而且由于每个模块减小了,访问的速度也提高了。 (3) DLL另一个用途是支持世界各国的语言。 (4) 将一些功能模块做成DLL后,如果需要对系统进行升级,只要将个别DLL进行升级, 然后用新的DLL文件覆盖掉旧的DLL文件就可以了,而不需要将整个系统进行重新编译和链接。 (5) DLL给程序开发带来了很多灵活性。 (6) DLL还独立于编程语言。 例如,在Delphi环境中开发的DLL程序可以在Visual C++环境中方便地使用; 同时,在Delphi环境中也可以方便地使用在Visual C++中开发的DLL。 4.1.3 系统DLL的含义 DLL是Windows操作系统的一个关键性的技术基础。 因为每一个应用程序对于从建立窗口到产生输出的任何一步操作都需要使用系统DLL,所以每个程序都必须与那些DLL链接。 4.1.4 DLL与EXE文件之间的区别 正常的执行文件(EXE文件)与动态链接库(DLL文件)之间的区别。 对于大部分EXE文件与DLL文件来说,它们的内部结构是相同的。只是当将DLL装载到内存中时,情况才发生了改变。 执行程序与DLL之间的主要区别是:DLL即使装载到内存中,也不是运行程序。 它只是其它程序可以调用的过程与函数集合。这些过程与函数使用了调用程序的堆栈。 程序与库之间的另一个区别是,库不能建立自己的堆栈――它使用调用它的程序的堆栈。 在Win32中,因为DLL映射于应用程序的地址空间中,所以DLL的任何内存分配或建立的任何全局数据都驻留在主进程的地址空间中。 4.1.5 DLL编写规则
您可能关注的文档
- Delphi程序设计基础 第2版 普通高等教育“十一五”国家级规划教材 张世明 第7章-工具栏和状态栏设计.ppt
- Delphi程序设计基础 第2版 普通高等教育“十一五”国家级规划教材 张世明 第8章-Delphi图形及多媒体应用.ppt
- Delphi程序设计基础 第2版 普通高等教育“十一五”国家级规划教材 张世明 第9章-数据库编程.ppt
- Delphi程序设计基础 第2版 普通高等教育“十一五”国家级规划教材 张世明 第10章-报表与图表.ppt
- Delphi程序设计基础 作者 张世明 第1章.ppt
- Delphi程序设计基础 作者 张世明 第3章.ppt
- Delphi程序设计基础 作者 张世明 第4章.ppt
- Delphi程序设计基础 作者 张世明 第5章.ppt
- Delphi程序设计基础 作者 张世明 第7章.ppt
- Delphi程序设计基础 作者 张世明 第8章.ppt
- Delphi软件开发技术 作者 张世明13316-Delphi软件开发技术教案(做完) P6.ppt
- Delphi软件开发技术 作者 张世明13316-Delphi软件开发技术教案(做完) P7.ppt
- Delphi软件开发技术 作者 张世明13316-Delphi软件开发技术教案(做完) P8.ppt
- Delphi软件开发技术 作者 张世明13316-Delphi软件开发技术教案(做完) P9.ppt
- DHTML动态网页设计 作者 王愉 CSS__I.ppt
- DHTML动态网页设计 作者 王愉 CSS课件III.ppt
- DHTML动态网页设计 作者 王愉 -HTML.ppt
- Director 11多媒体开发应用教程 作者 978-7-302-29610-2 charpter01.ppt
- Director 11多媒体开发应用教程 作者 978-7-302-29610-2 charpter02.ppt
- Director 11多媒体开发应用教程 作者 978-7-302-29610-2 charpter03.ppt
文档评论(0)