Chapter_16概要1
—— Chapter 16 动态连接库(DLL) 2009-10-26 什么是DLL Windows允许同时运行的多个程序共享一组函数的单一拷贝,于是引入了动态链接方式,将可共享的程序代码以及各种数据资源编译成单独的模块,即动态链接库(DLL)。 动态连接库 (DLL, Dynamic Link Library ) 是Windows操作系统的基础,所有的API函数都包含在DLL中。 作用机制: 应用程序 = 可执行模块+若干DLL模块 当执行应用程序时,系统会把与可执行模块相链接的DLL模块加载到当前进程地址空间。 16.1 DLL基础 DLL的定义 动态链接库: 是应用程序中的一段程序,将它放在一个不同的容器内,是一个可以从主.exe文件中单独执行的模块.可以认为一个DLL就是其它应用程序在执行时,能够动态链接和调用的一组服务或函数. DLL的概念 DLL是一个可以执行的并可以被多个Windows应用程序共享的程序模块(称为Module),模块中包含了一些可以被多个Windows应用程序或DLL共享的代码、数据和资源。 动态连接库文件的扩展名一般是dll,也有可能是drv,sys和fon(它们分别对应的是设备驱动文件、系统文件和字体资源文件)。 静态链接和动态链接 (1)静态链接 传统的库函数是通过静态链接链到应用程序中的。这些库函数可能来自编程语言提供的标准库,也可能是由操作系统提供的API。 (2)动态链接 动态链接是指在把应用程序的目标代码链接成EXE文件时并没有将函数库中的函数复制到应用程序的可执行文件中,而是在程序运行时动态地加载所需的函数。 DLL特性: DLL中存放的一般是一些公共的子程序段或各种资源和数据.一个最大的特点:可以实现应用程序本地化.如在DLL中封装了各种语言,在安装时进行适当的选择就能实现本地化. DLL的最大特性是支持动态载入。 即:应用程序在运动时根据所需要的功能加载对应的DLL,而在不需要该功能的时候,又可以卸载这个DLL。 1.扩展应用程序 2.语言无关特性 3.简化开发过程 4.提高内存使用效率 5.数据和资源共享 6.实现某些特殊功能 DLL的种类 主要有Win32 DLL和 MFC APPWizard DLL 两大类及相关子类。 动态链接库和静态链接库的比较 一个应用程序和函数的链接方式有两种: 动态链接:在应用程序中不需要包含所要调用函数的代码,而只需要所调DLL函数的一些信息,如DLL位置及相应的函数名。与函数的链接到编译或运行时进行。 静态链接:应用程序必须从静态链接库中取得所需调用函数的代码,并把这些代码放在应用程序的可执行代码中。如一般的库函数调用则属此类。 16.1.1 DLL的隐式链接 DLL中包含一个或多个函数,调用这些函数的过程和编译,链接的过程是独立的.要产生可执行文件有两个步骤: 1.编译过程; 编译源码,为每个C/C++源文件生成一个.obj模块,由编译器完成。 2.链接过程 把应用程序的各个.obj模块链接起来产生.exe文件,由链接器完成。 DLL隐式链接是指: 在链接的过程中,把应用程序所需要的DLL模块的各个名字和输入符号都记录下来,使得应用程序在运行时可以动态载入该DLL。 静态载入DLL 这种方法是将DLL文件映像映射到调用进程地址空间的最简单的办法。 静态载入DLL的前提是在编译之前已经明确知道要调用DLL中的哪几个函数,编译时在目标文件中只保留必要的链接信息,而不包含DLL函数的代码。 在程序执行时,利用链接信息加载DLL函数代码并在内存中将其链接进入调用程序的执行空间,从而实现了代码的重用。 16.1.2 DLL的显式加载 经过隐式链接DLL在应用程序初始化时,系统负责把这些DLL都加载到应用程序的进程地址空间。 显式方式不仅灵活,而且较为安全。缺陷是:若DLL文件较大,且引入时为首次引导加载,则影响运行速度。 与隐式链接相比,显式加载DLL主要有以下几个特性: 1.显式加载的DLL并不会在应用程序初始化时就加载,而是在运行时根据需要调用LoadLibrary或Lo
您可能关注的文档
- chapter1 introduction概要1.ppt
- Chapter10概要1.ppt
- chapter 3跨文化课件概要1.ppt
- Chapter11 FIELD EQUATIONS AND BOUNDARY CONDITIONS IN FLUID MECHANICS.ppt东鹏已改cyt已改概要1.pptx
- chapter10 Investment, Net Exports, and Interest Rates(宏观经济学加州大学詹姆斯·布拉德福特·德隆)概要1.ppt
- chapter11(多元线性)概要1.ppt
- Chapter13 Overall Audit Planand Audit Program(审计学英文版)概要1.ppt
- Chapter15 Audit Sampling for Tests of Controls and (审计学英文版)概要1.ppt
- Chapter16 Usinging the computer用电脑概要1.ppt
- chapter15 International Economic Policy(宏观经济学加州大学詹姆斯·布拉德福特·德隆)概要1.ppt
- Chapter_18How Much Should a Firm Borrow(公司理财原理,Brealey & Myers)概要1.ppt
- Chapter6算法概论概要1.ppt
- Chapter_1_The_Investment_Setting(投资分析与投资组合管理)概要1.ppt
- Chapter_4 Fixed Rate Mortgage Loans(内含中文笔记)概要1.ppt
- chapter_1_negotiation概要1.ppt
- chapter_3 消费者行为概要1.ppt
- chapter_5高级英语概要1.ppt
- chapter_4__市场细分与市场定位策划课英语版概要1.ppt
- chapter5 日耳曼文化概要1.ppt
- Chap_06Supply, Demand and Government Policies(曼昆微观经济学江西财大,王秋石)(英文版)概要1.ppt
原创力文档

文档评论(0)