第12章 动态链接库简介

特殊说明:版权归个人所有,请勿转载,谢谢合作。

动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,它是一个应用程序中的一段程序,可将它放在一个不同的容器内,可从主程序中直接调用执行的一组服务或函数。

Win32 API采用了一系列的DLL,如:KERNEL32.DLL、GDI32.DLL、USER32.DLL等,它是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种可以跨越进程执行代码的方法。执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容。DLL是一个包含可由多个程序同时使用的代码和数据的库。

动态链接库文件,是一种不可执行的二进制程序文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。一般被存放在“C:\Windows\System”目录下。Windows中,DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。

动态链接库的链接方法有两种:静态链接和动态链接。静态链接是将应用程序使用的静态库在编译时刻直接拷贝到可执行文件中;而动态链接是在程序运行时刻定位外部DLL函数的可执行代码进程。

优点:

  • 基于模块化的设计思想;
  • 复杂问题简单化;
  • 便于调试和部分更改;
  • 可实现代码复用(包括不同语言编写的程序之间);
  • 优化系统资源利用。

 

缺点:

  • 应用程序不是独立的,而是依赖另一可载入独立DLL的模块(调试复杂);
  • 如果没有找到DLL,使用载入动态连接的进程会在启动时终止;
  • 如果没有找到DLL,使用运行时刻动态连接的进程会发生功能残缺。

 

转载请附上原文出处链接及本声明
李老师的博客 » 第12章 动态链接库简介

发表评论

提供最优质的文章集合

立即查看 了解详情