下载此文档

动态链接库.ppt


文档分类:IT计算机 | 页数:约20页 举报非法文档有奖
1/20
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/20 下载此文档
文档列表 文档介绍
(DLL)++++++++(DLL)的概述DLL特点:要求一个DEF文件;要求一个DllMain()的入口点,不是WinMain();DLL可以装入,但不能执行。:是应用程序中的一段程序,将它放在一个不同的容器内,,:,。:动态链接:在应用程序中不需要包含所要调用函数的代码,而只需要所调DLL函数的一些信息,如DLL位置及相应的函数名。与函数的链接到编译或运行时进行。静态链接:应用程序必须从静态链接库中取得所需调用函数的代码,并把这些代码放在应用程序的可执行代码中。如一般的库函数调用则属此类。DLL的特点:有利于不同的应用程序共享数据和资源;多个应用程序可以使用内存中的动态链接库的单一映射,从而节约了程序运行和内存空间;通过使用动态链接库,应用程序可以拆分为相对独立的功能模块,有利于应用程序的升级;当多个应用程序需要使用相同的函数时,通过使用动态链接库,可以节约大量的硬盘空间。,系统要调用入出口函数完成DLL的初始化和终止工作。、DllMain函数:在一个DLL的调用和撤除时被调用,一般发生在应用程序使用LoadLibrary和FreeLibrary等函数及进程经线程启动和终止时。函数结构为:BOOLAPIENTRYDllMain(HINSTANCEhInstance,DWORDfdwReason,LPVOIDlpvReserved){Switch(fdwReason){CaseDLL_PROCESS_ATTACH:break;/DLL映射到进程地址空间CaseDLL_THREAD_ATTACH:break;/一个线程被创建CaseDLL_THREAD_DETACH:break;/线程退出CaseDLL_PROCESS_DETACH:break;}/DLL从进程中解除映射ReturnTRUE;}其中hInstance是DLL的模块句柄,lpvReserved指定DLL初始化和清除的一些内容指针,fdwReason表明调用DllMain()函数的原因,具体如下:标志值含义DLL_PROCESS_ATTACH1当一个DLL首次装入进程的地址空间时发送DLL_THREAD_ATTACH2在连接DLL的进程中生成一个新线程时发送DLL_THREAD_DETACH3在连接DLL的进程中一个线程终止时发送DLL_PROCESS_DETACH0在应用程序终止或显式调用FreeLibrary(),已编好了DllMain()函数,用户不必写,在装载DLL时调用其成员函数InitInstance,在DLL退出时调用成员函数ExitInstance,,调用这些函数的过程和编译,::先说明DLL的导入库文件(lib),,:包含导出函数以及类声明的头文件,,,:应用程序在运行时通过函数调用来显式装载和卸载DLL,并通过函数指针来调用DLL的导出函数,:第一步调用函数Loa

动态链接库 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数20
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1017848967
  • 文件大小57 KB
  • 时间2019-02-22