没有合适的资源?快使用搜索试试~ 我知道了~
Visual-C轻松入门二进制码功能模块动态链接库PPT优秀资料.ppt
0 下载量 157 浏览量
2022-11-20
01:05:26
上传
评论
收藏 224KB PPT 举报
温馨提示
试读
14页
Visual-C轻松入门二进制码功能模块动态链接库PPT优秀资料.ppt
资源推荐
资源详情
资源评论
第18章 二进制码功能模块-动态链接库(DLL
)
• 动态链接库(DLL)是一种软件模块,使用动态链接库可以
很方便地将开发者编写的功能模块应用到不同语言的程序
中。使用动态链接库更方便的在于不必重新编译该DLL中的
代码逻辑,缩短了编译调试的时间,从而大大提高了软件
进化的效率。本章的主要内容如下。
• DLL理论基础:读者将学会DLL理论的基础理论,了解DLL导
入导出的基本原理、隐式和显式连接,以及符号和序号连
接等基本概念。
• DLL自动化组件的开发:读者将学会使用自动化来开发DLL
组件,通过实例,掌握DLL自动化接口的开发。
• DLL的调用:通过实例实践,读者将学会调用自己开发的
DLL组件,并学会在VB Script和JavaScript中使用。
18.1 DLL理论基础
• DLL文件是一种可执行文件,但它不能像EXE可执行文件一
样在Windows系统平台直接运行,它需要有其他应用程序作
为运行母体,许多大的软件程序(如Windows操作系统)都
由很多模块(多个功能)组成,这些模块分别完成相对独
立的功能,它们可以拆分出来重组,又可以彼此协作来完
成整个软件系统的工作。在开发软件系统时,如果将所有
模块的源代码都集成到整个应用程序 EXE 文件中,会产生
一些问题:
• 增加应用程序的体积,使得应用程序过于庞大,浪费存储
空间和内存消耗。
• 在开发这种“综合型”应用程序时,需要更多的编译时间
和更高的逻辑复杂度,客观上造成了软件开发的困难。
读者容易弄错的地方主要有两个。
增加应用程序的体积,使得应用程序过于庞大,浪费存储空间和内存消耗。
增加应用程序的体积,使得应用程序过于庞大,浪费存储空间和内存消耗。
使用动态链接库更方便的在于不必重新编译该DLL中的代码逻辑,缩短了编译调试的时间,从而大大提高了软件进化的效率。
4 DllMain()函数
MFC DLL要提供自动化函数才能提供对外接口,而自动化函数需要定义一个自动化的类,创建该类后再添加3个基本的数学运算功能
。
DLL文件是一种可执行文件,但它不能像EXE可执行文件一样在Windows系统平台直接运行,它需要有其他应用程序作为运行母体,许
多大的软件程序(如Windows操作系统)都由很多模块(多个功能)组成,这些模块分别完成相对独立的功能,它们可以拆分出来重
组,又可以彼此协作来完成整个软件系统的工作。
3 在Windows中注册自定义的DLL动态链接库
当开发者不定义DllMain()函数时,系统将自动生成一个不做任何事情的DllMain()函数。
2.关于组件的使用,以下说法错误的是( )。
如果DLL文件没有在Windows系统中注册,则客户程序则不知道该DLL文件存放在何处,甚至不知道该DLL文件是否存在。
B.组件不稳定,不适合软件工程应用。
??0CNoTrackObject@@QAE@XZ @ 258 NONAME
以本小节的DLL文件为例,在Windows系统注册DLL的步骤如下:
B.组件不稳定,不适合软件工程应用。
DLL文件不是执行文件,不能直接执行,也就是它天生就是被其他客户程序使用的,当DLL文件被加载时,将会调用
_DllMainCRTStartup()函数,该函数调用全局对象的构造函数,而全局对象的构造函数体中调用了全局函数DllMain()。
18.1.1 DLL导入和导出的原理
• DLL文件中如何导出或导入功能函数的呢?它的接口就在于
DLL文件中包含的导出函数表,客户程序可以通过表中的函
数ID或符号函数来识别并调用这些功能函数。也就是说,
客户程序使用DLL文件时,无需知道它调用的函数地址(而
且在调用前,DLL还没有加载到内存中,自然就没有地址)
,只需要提供函数符号或函数ID即可。当客户程序提交调
用函数信息后,动态链接库的进程将会建立一张表,这张
表将客户的调用和DLL文件中函数的地址连接起来。如果仅
仅是对DLL文件中的函数功能进行修改,则无需改动客户程
序或重新注册DLL文件,这点与同一个项目中的函数调用是
一致的。只有当DLL功能提供者改变了DLL中的自动化接口
才需要修改客户程序,但也无需重新注册。
剩余13页未读,继续阅读
资源评论
xinkai1688
- 粉丝: 322
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功