当前位置:鱼C工作室 >Delphi > 查看文章

DLL技术应用01 – 零基础入门学习Delphi44

DLL技术应用01

 

让编程改变世界

Change the world by program


 

DLL技术应用

 

动态连接库(Dynamic Link Library,DLL)是实现Windows应用程序代码重用和共享的重要手段。

它是从C语言函数库和Pascal语言的库单元的概念发展起来的。

 

在C和Pascal语言中,很多标准函数可以放在一个函数库中或一个库单元中,在用户程序中可以调用这些库单元或函数库中的函数。

在程序编译的时候,由编译器把所调用的函数添加到可执行文件中去(即每个调用均会产生一个函数代码的拷贝)。

 

但是随着时代的发展,改革开放的到来,使用函数库或库单元等方法已不能适用Windows多任务环境下应用程序。

因为使用这种方法每个应用程序都必须拥有完成屏幕输出、消息处理、内存管理、对话框操作都相同功能的函数,从而使应用程序非常庞大。

为解决这个问题,必须能使几个应用程序能共享函数的单一拷贝,DLL也就应运而生了。接下来小甲鱼将给大家好好介绍一下这门有用的技术。

 

DLL的概念

 

DLL是一个可以执行的并可以被多个Windows应用程序共享的程序模块(Module),模块中包含了一些可以被多个Windows应用程序或DLL共享的代码、数据和资源。

动态链接库不用重复编译或链接,一旦装入内存,DLL中的函数就可以被系统中的任何正在运行的应用程序所使用,而不必产生函数的多个拷贝。

 

DLL主要的用途是使应用程序可以在运行时刻载入其中的代码,而不是编译时连接到应用程序中。

DLL文件的扩展名一般是dll,也可能是drv(设备驱动文件),sys(系统文件)和fon(字体资源文件)。

 

它和可执行文件(exe)很类似,区别在于,DLL文件中虽然包含了可执行代码却不能单独执行,只能由Windows应用程序直接或间接调用。

DLL类似于一般的运行函数库,但它与一般的运行库函数又有区别,区别主要在于,DLL与一般的函数库与应用程序链接的时机不同。

DLL是在应用程序运行期间被链接进来的,而一般函数库是在应用程序使用链接器(Linker)链接文件时被链接进来的。

 

这两种链接方式分别称为动态链接与静态链接。

下面小甲鱼给大家介绍这两种链接方式的概念。

 

静态链接

 

传统的库函数是通过静态链接链接到应用程序中的。这些库函数可能来自程序设计语言提供的标准库,也可能是由操作系统提供的API。

 

由应用程序源文件产生可执行文件,一般要经历两个过程:

一是将源程序编译成目标模块,在此阶段中,凡调用到库函数的地方都被标识为外部对象的引用;

二是把目标模块链接成EXE文件,该阶段将所有要用到的函数均拷贝一份,插入到应用程序的目标模块文件中,从而生成可执行文件。

 

也就是说静态链接是将应用程序调用的库函数拷贝一份嵌入到应用程序的可执行文件中去。

No picture you say a j8!

静态链接

 

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.