系统编程课件教学作者2 第九章 动态链接库编程.ppt

系统编程课件教学作者2 第九章 动态链接库编程.ppt

ID:51972837

大小:176.50 KB

页数:11页

时间:2020-03-26

系统编程课件教学作者2 第九章 动态链接库编程.ppt_第1页
系统编程课件教学作者2 第九章 动态链接库编程.ppt_第2页
系统编程课件教学作者2 第九章 动态链接库编程.ppt_第3页
系统编程课件教学作者2 第九章 动态链接库编程.ppt_第4页
系统编程课件教学作者2 第九章 动态链接库编程.ppt_第5页
资源描述:

《系统编程课件教学作者2 第九章 动态链接库编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章动态链接库与钩子在Windows操作系统环境中,库函数类型主要有两种:静态链接库(StaticLinkLibrary,即Lib),动态链接库(Dynamic-LinkLibrary,即DLL)两种库使用的主要区别是使用静态链接库的应用程序从函数库中得到所引用的函数的执行代码,把执行代码放进程序自身的执行文件中,应用程序在运行时就可以不再需要静态函数库的支持了;而动态链接库是一种用来为其它可执行文件(包括EXE文件和其它DLL)提供共享的函数库,应用程序中需要使用DLL的应用程序,我们可以调

2、用DLL中的导出函数(importedfunction),动态与静态链接库静态链接库的扩展名为.lib。应用程序在运行时就可以不再需要静态函数库的支持,通常库中存放是常见的数学函数等。Windows编程主要使用动态链接库,但也有许多是使用静态链接库。静态链接库WindowsAPI函数中的相当一部分程序就是由一组DLL所提供的,这些DLL从安装Windows之后起就存在于操作系统环境之中了。所有调用DLL的操作都由VisualC++的编译和链接程序替我们完成的。由于多个应用程序共享同一个DLL中的

3、函数,因而使用DLL可以显著的节省磁盘空间。使用传统的静态链接,每一个需要完成这些操作的应用程序都必须在自己的执行文件中包括相同的执行代码,动态链接库动态链接库是应用程序的一部分,它的任何操作都是应用程序的执行;动态链接库在编译时不会插入到可执行文件中,而是在运行时调入内存:“动态链接”多程序调用同一动态链接库,内存中只保留一份库的代码,Windows通过分页机制将代码映射到不同进程中。动态链接库概念创建动态链接库工程新建工程,选择Win32Dynamic-LinkLibrary,命名;单击OK

4、,弹出对话框,三个中任选一项;打开创建的文件框架并修改、添加导出函数(pp316):BOOLAPIENTRYDllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){switch(ul_reason_for_call){caseDLL_PROCESS_ATTACH:caseDLL_THREAD_ATTACH:caseDLL_THREAD_DETACH:caseDLL_PROCESS_DETACH:break;}returnTR

5、UE;}voidExportFunc(…)//用户自定义导出函数,使用见pp318例题修改创建中产生的.h文件,以便函数可被其他模块调用。装载期间链接:模块像调用本地函数一样调用其他模块的导出函数。运行期间的链接:模块使用LoadLibrary或LoadLibraryEx函数在运行期间加载DLL。在代码中明确的加载所使用的DLL,使用指针来调用DLL中的导出函数,使用完毕之后,必须卸载。例题见pp318-319导出函数的使用1、系统预安装的DLL,如KERNEL32.DLL和USER32.DLL

6、等2、当前目录3、Windows的系统的目录,如WINNTsystem324、Windows所在的目录,如WINNT5、环境变量PATH中所指定的目录系统查找程序动态链接库顺序Windows钩子钩子是Windows消息处理机构中的一部分通过钩子,应用程序可以监视系统中的消息往来能在消息到达目的窗口过程之前处理某种类型的消息Windows系统中含有多种不同类型的钩子每种类型都提供了一种Windows系统消息处理机制中不同方面的的通路。(钩子类型取值:p321)Windows系统钩子链Window

7、s系统为每一种类型的钩子管理一个钩子链,钩子链是一个指向特殊的,称为钩子过程的应用程序定义的回调函数的指针列表。如果有与某种特定类型钩子相应的消息,Windows系统把这条消息一个接一个地传给钩子链中的每个钩子过程。钩子过程的操作取决于钩子的种类,有些类型的钩子只能监视消息,而另外一些则能够修改或停止他们在链中的传播,禁止他们到达下一个钩子过程或窗口过程。钩子过程LRESULTCALLBACKHookProc(intnCode,DWORDwParam,DWORDlParam);关于挂钩(Hook

8、API)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。