动态连接库编程.pptVIP

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows编程实践 动态链接库 库 静态链接库 动态链接库 静态链接库 例题:建立并使用一个静态链接库 步骤1. VC6中建立一个工程工程类型: VC++6.0中new一个名称为libTest的static library工程 加入两个文件 //文件:lib.h #ifndef LIB_H #define LIB_H extern C int add(int x,int y);//声明为C编译、连接方式的外部函数 #endif //文件:lib.cpp #include lib.h int add(int x,int y) { return x + y; } 编译与应用 在Debug目录下有个后缀名为.lib的文件 应用要点: 需要包含.h文件 需要链入.lib文件:两种方法 1. #pragma comment( lib , ..\\debug\\libTest.lib ) 2.Project-Setting中设置 什么是库 库不是个怪物,编写库的程序和编写一般的程序区别不大,只是库不能单独执行; 库提供一些可以给别的程序调用的函数等,别的程序要调用它必须以某种方式指明它要调用之。 动态链接库与静态链接库在编写和调用上的不同体现在库的外部接口定义及调用方式略有差异。 动态链接库 动态链接库DLL简介 简单DLL的开发 DLL的使用 MFC DLL的开发 动态链接库(DLL)简介 什么是动态链接库(1) 动态链接库(Dynamic Link Library )是Windows的重要组成部分 之前学习的windows可执行程序都是exe程序,但Windows系统中动态链接库是数量最多的可执行程序 KERNEL32.DLL、USER32.DLL和GDI32.DLL、各种驱动程序文件如KEYBOARD.DRV、SYSTEM.DRV和MOUSE.DRV和显卡及打印机驱动程序都是动态链接库 动态链接库是其它应用程序在执行时能够动态链接和调用的一组服务或函数 可以利用Visual Studio自带的Depends.exe工具来查看与应用程序关联的所有DLL文件 什么是动态链接库(2) 在程序开发中,将各种目标模块(.OBJ)、执行时期链接库(.LIB)文件,以及经常是已编译的资源(.RES)文件连结在一起,以便建立Windows的.EXE文件,称为“静态链接” “动态链接”是指Windows程序把一个模块中的函数调用链接到动态链接库模块中的实际函数上 动态链接与静态链接的区别:动态链接是在程序运行时完成,静态链接在编译时完成 动态链接库是一种能够实现动态链接的技术 动态链接库的意义 使用动态链接产生的exe文件比静态链接产生的exe文件小得多 使用动态链接的程序比相应静态链接程序具有更优化的内存使用 可以实现函数模块的二进制重用,多个应用程序可以共享动态链接库,动态链接库也可以调用其它动态链接库 在程序开发时函数模块可以独立开发 通过替换动态链接库,可以实现应用程序功能的升级 共享动态链接库 利用动态链接库实现软件升级 简单DLL的开发 基本步骤 建立DLL工程 编写函数模块 产生动态链接库程序 在其它项目中使用动态链接库 分类 普通的Win32的DLL 直接用C、C++编写,不适用于MFC类 基于MFC的DLL 应用MFC类库编写 建立DLL工程 新建项目时选择DLL程序 DllMain 工程建好之后,默认代码如下: BOOL WINAPI DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } DllMain的作用 DllMain是动态链接库的执行入口,第一次执行dll时被调用 DllMain主要用于dll调用时初始化,以及dll退出时的清理工作 例如:在dll调用时初始化一些全局变量,在dll退出时销毁这些全局变量 通常情况下可以不编写DllMain 编写函数模块(1) 为一个函数加上extern “C” __declspec (dllexport)就可以将函数导出为dll函数模块 例如: extern C __declspec (dllexport) int add(int a,int b) { return a+b; } extern C __declspec (dllexport) void message(LPCTSTR text) { MessageBox(NULL,text,TEXT(消息),MB_OK); } 编写函数模块(2) 如果使

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档