Visual C++程序设计教程 教学课件 段智毅 第10章 DLL .ppt

Visual C++程序设计教程 教学课件 段智毅 第10章 DLL .ppt

ID:50307702

大小:623.00 KB

页数:45页

时间:2020-03-07

Visual C++程序设计教程 教学课件 段智毅 第10章 DLL .ppt_第1页
Visual C++程序设计教程 教学课件 段智毅 第10章 DLL .ppt_第2页
Visual C++程序设计教程 教学课件 段智毅 第10章 DLL .ppt_第3页
Visual C++程序设计教程 教学课件 段智毅 第10章 DLL .ppt_第4页
Visual C++程序设计教程 教学课件 段智毅 第10章 DLL .ppt_第5页
资源描述:

《Visual C++程序设计教程 教学课件 段智毅 第10章 DLL .ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第10章DLL【学习目标】使用动态链接库可以实现软件设计的模块化,动态链接库是在运行时才进行链接并能够共享的函数库,可以将不同功能的模块封装到不同的链接库中,功能相同或相似的模块封装到相同的链接库中。本章将详细介绍动态链接库的相关知识。讲解过程中为了便于读者理解结合了大量的举例。通过本章学习,读者可以达到以下学习目的:l掌握创建动态链接库方法l了解链接库的命名改变l掌握导出函数的方法l了解资源动态链接库的设计l访问动态链接库中提供的资源课件制作人:宋坤【学习导航】对于初学者来说,动态链接库是一个高级的技术

2、,它通常用于模块化的程序设计。本章从简单的动态链接库开始介绍,逐步扩展到动态链接库在程序中的各种使用方式,例如将公共类封装到动态链接库中,将位图、对话框资源封装到动态链接库中。熟练地掌握动态链接库技术,可以提高应用程序的灵活性。本章在书中的学习位置如图10-1所示。课件制作人:宋坤【知识框架】本章学习内容知识框架如图10-2所示。课件制作人:宋坤√本章目录10.1DLL简介10.2创建动态链接库10.3链接库的导出10.4MFC动态链接库10.5课后习题√√√√课件制作人:宋坤10.1DLL简介动态连接库

3、DynamicLinkableLibrary,简称Dll,为Windows操作系统的基础和核心,自从Windows操作系统的第一个版本面世以来,就有了Dll。与普通的应用程序类似,Dll中可以有数据和代码,也可以包含各种资源(例如,图标、位图、对话框等)。但是Dll并不能单独运行,它主要是为其他Dll或应用程序提供函数、资源的服务。课件制作人:宋坤10.2创建动态链接库创建Win32动态链接库,需要使用Win32Dynamic_linkLibrary工程向导,向导需要用户设置一步,主要是设置Anempty

4、DLLproject、AsimpleDLLproject、ADLLthatexportssomesymbols等3种工程类型。AnemptyDLLproject向导创建一个不带任何文件的空工程。AsimpleDLLproject创建一个含有3个文件的工程,一个文件是带有DllMain函数的实现文件、StdAfx.cpp和StdAfx.h。ADLLthatexportssomesymbols创建一个可以导出类的链接库工程。下面通过具体实例讲述如何创建Win32动态链接库。应用程序设计步骤如下。(1)通

5、过Win32Dynamic_linkLibrary向导创建一个空工程,工程名设置为DynicDLL。(2)向工程中添加头文件DynicDLL.h和实现文件DynicDLL.cpp。(3)实例创建的动态链接库中包含了两个函数,一个函数计算两个数的最大公约数,一个函数计算两个数的最小公倍。实现文件DynicDLL.cpp中两个函数的具体实现同创建静态链接库中两个函数的基本相同。课件制作人:宋坤10.2创建动态链接库#include"DynicDLL.h"intGetMaxCommDiv(inta,intb){

6、intx=1;//a,b保存相除后的结果intires;//保存结构if(a

7、;if(b==0)return0;while(x!=0){x=a%b;a=b;ires=b;b=x;}ires=(m*n)/(ires);returnires;}课件制作人:宋坤10.2创建动态链接库(4)因为动态链接库中的函数需要导出,所以要在声明函数的语句前加extern"C"__declspec(dllexport)等关键字,如果像静态链接库一样声明函数,工程不会生成LIB文件,不能对其进行隐式调用,又因为没有可导出的函数没办法动态加载。在DynicDLL.h头文件加入函数的声明,其代码如下:ext

8、ern"C"__declspec(dllexport)intGetMaxCommDiv(inta,intb);extern"C"__declspec(dllexport)intGetMinCommMul(inta,intb);(5)经过编译生成了LIB文件和DLL文件。课件制作人:宋坤10.3链接库的导出√动态链接库的命名改编使用dumpbin工具查看链接库使用DEF文件导出函数名称隐式调用与动态加载从动态链接库中导出类√√√

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

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

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