实用工具软件环境(第4章) - visual basic 讲义.pptVIP

实用工具软件环境(第4章) - visual basic 讲义.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用软件工具与环境 第4章 动态连接库 本章主要教学内容 什么是动态连接库(DLL) 动态连接库有哪些种类,各有些什么特点 如何在Visual C++中生成和使用动态连接库 利用Visual C++软件开发环境编制一个 DLL 程序的实例 第4章 动态连接库 4.1 动态连接库(DLL)概述 4.2 DLL的基本理论 4.3 用VC++开发环境生成DLL 4.4 使用DLL 4.5 用VC++开发DLL的编程事例 4.6 本章小结 4.7 思考与练习 4.1 动态连接库(DLL)概述 作用: 通过创建和使用DLL,可以方便地实现多个用户对DLL的共享(通过库文件和函数调用说明文件) DLL类似C原文件,提供函数、资源和数据 通过DLL的使用可方便的实现应用程序的本地化 DLL与可执行文件的区别和联系: DLL要求一个DEF(模块定义文件) DLL要求一个DllMain()的入口点 DLL可以装入,但不能执行 4.1 动态连接库(DLL)概述(C) 4.1.1 DLL的定义 DLL是应用程序中的一段程序,是一个可以从.exe文件中单独执行的模块。 DLL是其它应用程序在执行时能够动态链接和调用的一组服务或函数。 DLL是Windows程序设计非常有用的一种方法。 4.1 动态连接库(DLL)概述(C) 4.1.2 DLL的种类(由MFC AppWizard支持生成) Win32 DLL 空DLL工程 简单的DLL工程 导出变量、函数和类的DLL MFC AppWizard DLL 静态链接MFC的Regular DLL 动态链接MFC的Regular DLL 动态链接MFC的扩展(Extension) DLL 4.1 动态连接库(DLL)概述(C) 4.1.3 动态连接库和静态连接库的比较 区别: 使用静态链接库,其函数代码包含在应用程序中 使用动态链接库,只需包含函数信息即可 动态链接库的优点: 有利于程序共享 多个程序使用DLL的单一映射,节约内存空间 通过程序拆分,有利于程序升级 可以节约大量硬盘空间 4.2 DLL的基本理论 4.2.1 DLL的入出口函数 被系统调用,以完成DLL的初始化和终止工作。 ⒈DllMain函数 一般DLL的入出口函数,需自己编写代码 一个DLL调用和撤除时被调用 函数结构:p.85 ⒉MFC的Regular DLL入出口 由MFC提供,不必自己编写代码 装时调用InitInstance,卸时调用ExitInstance 4.2 DLL的基本理论(C) 4.2.2 DLL的链接方式 ⒈隐式链接动态链接库 应用程序通过说明DLL的导入库文件(lib)链接,lib文件中包含一系列指向动态链接库的指针 应用程序必须获得的有关DLL的信息: 包含导出函数以及类声明的头文件,需要知道函数名和函数接口信息 DLL的导入库文件(应用程序编译链接时使用),使用Project|Add To Project/Setting选择lib文件 实际的DLL文件(应用程序运行时调用) 4.2 DLL的基本理论(C) 4.2.2 DLL的链接方式(C) ⒉显式链接动态链接库 应用程序在运行时通过函数调用显式装载和卸载DLL,并通过函数指针调用DLL的导出函数 函数使用的基本方式: DLL的装载函数:LoadLibrary或AfxloadLibrary 获取导出函数指针函数:GetProcAddress DLL的卸载函数:FreeLibrary或AfxFreeLibrary 4.2 DLL的基本理论(C) 4.2.3 动态连接库库函数的导出 ⒈在源程序中使用关键字_declspec(dllexport) 根据一个指定的存储类属性,存储某个项目数据。从动态连接库文件中输出数据、函数、类、类成员函数,而不需要DEF文件。 语法如下: _declspec(extended-attribute) declarator; 在应用程序中使用关键字_declspec(dllimport)引入DLL中的数据、函数以及类 4.2 DLL的基本理论(C) 4.2.3 动态连接库库函数的导出(C) ⒉在DEF中通过EXPORTS来声明函数 DEF是由一个或多个描述DLL属性的语句组成的文本文件,一般包括五个语句的描述项(P.88)。 库函数的声明如下: entryname[=internalname][@ordinal[NONAME]] ⒊其它方法 在LINK命令中用/EXPORT参数指定导出函数 在MFC扩展DLL中使用宏导出成员函数或整个类 4.2 DLL的基本理论(C) 4.2.4 从DLL中导出数据变量 ⒈使用DEF文件,设置关键字CONSTANT导出 ⒉在应用程序中使用如下关键字引入对DLL导出变量的使用:_declspec(

文档评论(0)

181****7126 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档