《动态链接库》ppt课件

《动态链接库》ppt课件

ID:27127435

大小:272.00 KB

页数:31页

时间:2018-12-01

《动态链接库》ppt课件_第1页
《动态链接库》ppt课件_第2页
《动态链接库》ppt课件_第3页
《动态链接库》ppt课件_第4页
《动态链接库》ppt课件_第5页
资源描述:

《《动态链接库》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三篇VC编程高级篇—— 基于组件的编程与应用VC不仅能进行结构化的程序设计,还能进行面向对象的程序设计。基于组件的程序设计就是解决不同程序语言开发的程序差异而出现的一种程序设计方法。在VC程序中,不仅可以开发组件供自己或别的程序语言来调用,而且还可以使用别的程序语言开发的组件。本篇主要讲解利用VC编制组件和调用组件的方法与原理,主要包括编制动态链接库和COM组件、调用VC自己开发的动态链接库和COM组件,以及结合数据库应用程序的开发,阐述了如何使用Microsoft的ADO数据访问组件来编写高效数据库客户端应用程序。第13章动态

2、链接库13.1动态链接库概述13.2动态链接库的创建13.3动态链接库的显式调用习题13.1动态链接库概述动态链接库提供了一种代码共享机制,它可以有效地减小程序文件的尺寸和不必要的重复工作。本章以一个包含递归分形树函数的.DLL的建立为例,重点讲解了动态链接库的建立方法,在VC中显式调用.Dll的方法。13.1.1动态链接库定义13.1.2静态链接与动态链接13.1.3函数的导出与导入13.1.4隐式链接与显式链接13.1.5搜索动态链接库*13.1.6使用动态链接库的优点13.1.1动态链接库定义动态链接库(DynamicLin

3、kLibrary,简称DLL)是一个包含了若干函数的可执行模块,它实质上是一个函数包,Windows应用程序可以调用这些函数来完成实际的任务。DLL在Windows环境中起着重要的作用——Windows利用DLL来建立Windows应用程序可以使用的Windows函数与资源。动态链接库是一个文件,其中包含有函数或全局变量,使用他们就像应用程序使用自己定义的函数一样。用API开发Windows应用程序,实质就是调用Windows操作系统下的动态链接库。13.1.2静态链接与动态链接DLL与运行函数库(如C语言的运行函数库)类似,二者

4、主要区别在于库代码的链接时机不同。静态链接库在多任务环境中建立与运行时效率可能很低。一方面,如果两个应用程序同时运行,且它们使用了同一个静态库中的函数,那么就要求系统中出现该函数的两个副本,这显然降低了内存的使用效率。另一方面,对于比较复杂的问题,应用静态链接库将导致最终的应用程序长度超过系统内存而无法运行。DLL是在运行期间才被链接进来,该操作由Windows操作系统自身来完成,而运行函数库则是在程序链接期间由应用程序的链接器如LINK.EXE来完成,运行函数库的链接被称为“静态链接”,它把函数代码链接到应用程序中,增加了应用程

5、序最终执行代码的长度。它的主要优点是建立了一个应用程序可以利用的标准函数集,这样在开发应用程序时就无需包含函数库中所包含的函数源代码。13.1.2静态链接与动态链接(续)与静态链接库不同,动态链接库则允许若干个应用程序共享某个函数的单个副本。事实上,每个WindowsAPI函数,如GetMesssage()、CreateWindow()和TextOut()分别留于动态链接库——Kernel32.dll、User32.dll、Gdi32.dll之中。如果两个应用程序同时运行,且都使用了某个特定的Windows函数,那么它们将共享该函

6、数代码的单个副本。DLL除了实现代码的共享外,还可以实现其它资源的共享,如数据和硬件资源的共享。Windows的设备驱动程序允许应用程序共享硬件资源,这些设备驱动程序就是以动态链接库的形式来出现。从某种程度上讲,动态链接库也是一种类型的计算机资源。一个动态链接库可以为多个应用程序使用,如果一个应用程序使用了某个动态链接库中函数,若库不存在,则调用将不能完成。13.1.3函数的导出与导入动态链接库是一个.DLL文件,它存放在特定的位置上(13.1.5节讲)。程序员所创建的动态链接库中的函数要有导出标志,在使用动态链接库中的函数的程序

7、中,要具有导入标志。动态链接库中的函数并不是杂乱无章地堆放在一起,它们都有一个标志,即动态链接库中的导出标志。同样,如果应用程序要使用该库中的函数,也要向动态链接库发出“是否有我们想要的函数”,这通过导入标志来进行。双方必须达成一致后才能使用。13.1.3函数的导出与导入(续)1.通过扩展关键字dllexport与dllimport指定从一个动态链接库中导出一个函数可以通过如下的语句来完成__declspec(dllexport)voidMyFunction(inti){//动态链接库中的函数MyFunction的实现代码}其中_

8、_declspec是一个扩展关键字,其作用和具有一个参数的函数类似,实际上,它与它的“参数”一起构成了一个“标志”,即“__declspec(dllexport)”,该语句的含义为“出现在我后面的函数在当前的动态链接库文件中被合法导出,外部应用程序

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

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

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