基于Windows操作系统动态链接技术的分析与实现.pdfVIP

基于Windows操作系统动态链接技术的分析与实现.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Windows操作系统动态链接技术的分析与实现.pdf

第20卷第12期 乐山师范学院学报 V01.20,No.12 2005年12月 JoumalofLeshanTeachem Dec.2005 CoHege 基于Windows操作系统动态链接技术的分析与实现 刘家彬1谭斌2陈渝1何先波2 (1.康定民族师范高等专科学校计科系,四川康定626001; 2.西华师范大学计算机学院,四川南充637002) 摘要:本文阐述了Windows环境下动态链接库的概念和特点,对静态链接和动态链接两种调用方式进行了比较和 分析,并给出了Windows环境下动态链接库的程序实现。 关键词:动态链接;静态链接;隐式链接;显式链接 中图分类号:TP316.7文献标识码:A 文章编号:1009—8666(2005)12一0107一03 时,在Windows的管理下,才在应用程序与相应 在Windows系统中,动态链接库(Dynamic Link 的DLL之间建立链接关系。当要执行所调用DLL Library,缩写为DLL)是一个文件,其扩展名 一般是DLL,是可以被其它应用程序共享的程序 中的函数时,根据链接产生的重定位信息,win— 模块,其中封装了一些可以被共享的全局数据、编 dows才转去执行DLL中相应的函数代码。 译过的函数和资源,它们是进程的一部分。和可执 1动态链接库工作原理及优点 行文件(eXe)非常类似,区别在于DLL中虽然包 含了可执行代码却不能单独执行,而应由win— dows应用程序直接或间接调用。动态链接是相对编译后,装入到一个预置的基地址,如果跟其它的 于静态链接而言的。所谓静态链接是指把要调用 DLL没有冲突,该文件被映射到进程中相同的虚 的函数或者过程链接到可执行文件中,成为可执 拟地址上。DLL有各种导出函数,客户程序(首先 行文件的一部分,即函数和过程的代码就在程序 装入DLL的程序)导入这些函数。系统在装入 的exe文件中,该文件包含了运行时所需的全部 DLL时会对导入和导出作匹配。一般情况下,如果 代码。当多个程序都调用相同函数时,内存中就会 一个应用程序使用了动态链接库,Win32系统保 存在这个函数的多个拷贝,从而浪费了宝贵的内 证内存中只有DLL的一份复制品,这是通过内存 存资源。而动态链接所调用的函数代码并没有被 映射文件实现的。DLL首先被调入Win32系统的 拷贝到应用程序的可执行文件中去,它仅仅在其 全局堆栈,然后映射到调用这个DLL的进程地址 中加入了所调用函数的描述信息(往往是一些重 空间。在Win32系统中,每个进程拥有自己的32 定位信息)。仅当应用程序被装入内存开始运行 位线性地址空间,如果一个DLL被多个进程调 收稿日期:2005—10—08 作者简介:刘家彬(1970一),男,四川南充人。康定民族师范高等专科学校计算机科学系讲师,主要从事计算机网络及 应用方面的研究。 107 万方数据万方数据 用,每个进程都会收到该DLL的一份映像。与16 这种方式是指在编译之前并不知道将会调用 位Windows不同,在Win32中DLL可以看作是哪些DLL函数,完全是在运行过程中根据需要决 每个进程自己的代码。 和静态函数库相比,使用动态链接库的优点 cAddress动态获得DLL函数的入口地址。 2.2 有:(1)DLL的代码可以被所有的Windows应用VC编程

文档评论(0)

aiwendang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档