已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
动态链接库的加载 本节课程主要知识点动态链接库的加载动态链接库的静态加载动态链接库的动态加载 重点和难点 重点动态链接库的加载方法难点静态调用中建立关联 动态链接库的加载 动态链接库的加载 动态链接库的加载分为即静态加载方式和动态加载方式 静态加载方式是在编译程序代码时即完成对DLL的加载 应用程序结束时卸载DLL 动态加载方式是使用用API函数来加载和卸载DLL的 动态链接库的静态加载 动态链接库的静态加载 静态加载方式由编译系统完成对DLL的加载 应用程序完成对DLL的卸载 加载方法简单 但不够灵活 LIB文件用来做什么 在生成一个DLL文件时 链接程序会自动生成一个与之对应的LIB文件 LIB文件包含了每一个DLL导出函数的符号名和可选的标识号 但是并不含有实际的代码 编译应用程序 把生成动态连接库时生成的LIB文件和DLL文件加入到应用程序的工程中 通过静态链接方式编译生成应用程序时 应用程序中的调用函数与LIB文件中导出符号相匹配 这些符号或标识号进入到生成的EXE文件中 LIB文件作为DLL的替代文件被编译到应用程序工程中 DLL中函数的调用 1 2 当应用程序运行过程中需要加载DLL文件时 WindowsCE根据LIB中的信息发现并加载DLL 然后通过符号名或标识号实现对DLL函数的动态调用 DLL中函数的调用 2 2 所有被应用程序调用的DLL文件都会在应用程序EXE文件加载时被加载到内存中 可执行程序直接通过函数名调用DLL的输出函数 调用方法和程序内部其他的函数是一样的 DLL如何共享 DLL静态加载后 系统会建立对该DLL的调用记录 如还有其它程序使用该动态链接库 则WindowsCE对DLL的应用记录减1 直到所有相关程序都结束对该DLL的使用时才释放它 DLL静态加载实例 利用VS2005生成动态链库wcedll dll和wcedll lib文件 利用VS2005创建一个测试工程wcetest 用以测试动态链接库的静态加载 设置依赖关系 将两个库文件wcedll dll和wcedll lib拷贝到当前测试工程wcetest所在的文件夹下 选择wcetest工程 点击右键 在弹出的菜单中 选择Properties 进入Linker下的Input选项 在AdditionalDependencies编辑框中添加wcedll lib一项内容 运行测试代码 编译并下载wcetest exe 保证代码没有错误 在目标平台上找到wcetest exe应用程序 双击它 让其运行起来 通过VS2005的RemoteProcessViewer就可以看到wcetest exe已经运行 而且wcedll dll已经加载 动态链接库的动态加载 动态链接库的动态加载 动态调用方式是由程序员编程使用API函数来加载和卸载DLL 使用较复杂 但能更有效地使用内存 是编制大型应用程序的重要方式 是一般常见的动态链接库的加载方法 在嵌入式系统中更为常见 如何实现DLL动态调用 在应用程序中用LoadLibrary显式的将自己所做的动态连接库调进来 用GetProcAddress 获取想要引入的函数 如同本应用程序自定义的函数一样来调用该引入函数 在应用程序退出之前 用FreeLibrary释放动态连接库 DLL动态加载实例 利用VS2005创建一个测试工程wcetest1 用以测试动态链接库的动态加载 与静态调用DLL相比 程序中增加以下代码添加wcedll动态链接库工程实现函数定义 利用LoadLibraryAPI函数动态加载动态链接库 利用GetProcAddressAPI函数获取需要引用的函数 测试程序的源代码 includetypedefvoid printH void intWINAPIWinMain HINSTANCEhInstance HINSTANCEhPrevInstance LPTSTRszCmdLine intiCmdShow HANDLEhModule LoadLibrary TEXT wcedll dll if hModule NULL return0 else printHPrintHello printH GetProcAddress hModule TEXT PrintHello PrintHello FreeLibrary TEXT wcedll dll return0 运行测试代码 编译并下载wcetest1 exe 保证代码没有错误 在目标平台上找到wcetest1 exe应用程序 让其运行起来 通过VS2005的RemoteProcessViewer就可以看到wcetest1 exe已经运行而且
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福州工业园区开发集团有限公司设计勘察分公司项目建设合同制人员招聘4人考试参考题库及答案解析
- 2026年高考物理模拟试卷重点知识题型-传感器(2025年12月)
- 2026广东广州市越秀区洪桥街招聘禁毒工作人员1人笔试模拟试题及答案解析
- 拿盆装水测试题目及答案
- 基于跨学科视角的小学英语阅读教学策略研究教学研究课题报告
- 2025年智能音箱交互功能五年创新方向报告
- 2026年余杭初二数学题库及答案
- 2025年山东医师助理试题及答案
- 小学地理教学中AI气候模型环境保护校本课程开发课题报告教学研究课题报告
- 高中体育专项化教学中的体育伦理教育研究教学研究课题报告
- 高压氧培训课件
- 民用航空安全保卫审计工作指导手册
- 2025福建德化闽投抽水蓄能有限公司社会招聘4人备考题库附答案
- 2025水土流失动态监测技术指南
- 六年级上册语文补充习题及答案
- 2024湖南艺术职业学院教师招聘考试笔试试题
- 24秋国家开放大学《计算机系统与维护》实验1-13参考答案
- 2023湖南艺术职业学院教师招聘考试真题题库
- Photoshop CS6图形图像处理标准教程(微课版第2版)PPT完整全套教学课件
- 安全生产监管知识培训课件
- 高中综合实践活动-调查问卷的设计教学课件设计
评论
0/150
提交评论