第--章-动态链接库(DLL优秀文档.ppt
上传人:天马****23 上传时间:2024-09-10 格式:PPT 页数:27 大小:401KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

第--章-动态链接库(DLL优秀文档.ppt

第--章-动态链接库(DLL优秀文档.ppt

预览

免费试读已结束,剩余 17 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第10章动态链接库(DLL)应用编程10.1循序渐进学理论2.静态链接和动态链接图10-10程序设计界面0集成环境中,执行【File】→【New】→【Other】命令,将会出现【NewItems】对话框窗口,在该窗口中找到【DLLWizard】图标,如图10-3所示。(1)如果加载的DLL文件不存在或者DLL中没有要引入的例程,程序将自动终止运行;(5)进行函数调用(本题调用语句为:Myfunct(x,y,z););(1)如果加载的DLL文件不存在或者DLL中没有要引入的例程,程序将自动终止运行;(3)用exports语句声明供其它应用程序调用的函数和过程名为编写该动态链接库,需经过以下步骤:(2)在应用程序中直接调用用extern子句声明的过程。然后编写一个项目文件,在该项目文件中对这三个函数进行调用。传统的库函数是通过静态链接链到应用程序中的。图10-11程序运行界面要求:在项目文件中采用显式调用的方法调用动态链接库中的函数。(3)修改工程文件,使之能生成DLL文件3.使用DLL的优点10.1.2动态链接库(DLL)编写图10-3“NewItems”对话框2.建立过程和函数(3)用exports语句声明供其它应用程序调用的函数和过程名10.1.3加载动态链接库(DLL)的方法2.动态载入DLL(1)LoadLibrary函数[格式]:functionLoadLibrary(LibFileName:PChar):Thandle;[功能]:加载由参数LibFileName指定的DLL文件。(2)GetProcAddress函数[格式]:functionGetProcAddress(Module:Thandle;ProcName:PChar):TfarProc;[功能]:返回参数Module指定的模块中,由参数ProcName指定的过程或函数的入口地址。(3)FreeLibrary函数[格式]:procedureFreeLibrary(Module:Thandle);[功能]:将由参数Module指定的DLL文件从内存中卸载1次。10.1.4调用动态链接库(DLL)中的过程和函数【例10-2】编写一个应用程序用来调用例10-1所建立的动态链接库中的Max和Min函数,要求使用隐式调用。程序的设计界面如图10-4所示,函数的运行界面如图10-5所示。程序运行时输入三个数到三个编辑框中,然后按【求最大值】按钮,将会求出三个数的最大值并显示在第四个文本框中,如果按【求最小值】按钮,将会求出三个数的最小值并显示在第四个文本框中。图10-4例10-2程序设计界面2.显式调用【例10-3】编写一个应用程序用来调用例10-1所建立的动态链接库中的Max和Min函数,要求使用显示调用。程序的设计界面和运行界面及程序功能同例10-2。在应用程序中,调用动态链接库也有两种方法。(2)编写输出函数或过程,实例化窗体。3上机练习重应用DLL文件的需要,对工程文件进行相应修改;(1)建立DLL程序框架编写一个动态链接库MyDLL.(2)在应用程序中直接调用用extern子句声明的过程。图10-10程序设计界面图10-8弹出的可重用窗体【例10-2】编写一个应用程序用来调用例10-1所建立的动态链接库中的Max和Min函数,要求使用隐式调用。在程序执行时,利用链接信息加载DLL函数代码并在内存中将其链接进入调用程序的执行空间,从而实现了代码的重用。(6)利用FreeLibrary函数卸载动态链接库。使用动态链接库还有以下优点:程序的设计界面如图10-12所示,程序的运行界面如图10-13所示。窗体单元编制完成之后,可把应用程序项目转换为DLL。图10-10程序设计界面【例10-4】在许多应用程序中都有在两个列表框中移动选项的窗体,请设计一个这样的可重用窗体,设计界面如图10-6所示。该窗体运行时,在左边的列表框中选中若干个选项后按【>】按钮,将把选中的选项移动到右边的列表框中;在右边的列表框中选中若干个选项后按【<】按钮,将把选中的选项移动到左边的列表框中;按【>>】按钮将把左边的列表框中的所有选项移动到右边的列表框中;按【<<】按钮将把右边的列表框中的所有选项移动到左边的列表框中。然后再编写一个应用程序用来调用该窗体。图10-6设计界面为完成本题的功能,应经历以下步骤。③在{$R}资源指令和工程的uses指令的最后一行之间,插入关键字export,后跟单元的访问过程或函数名称(在本例中,就是ListMoveF),如果有多个窗体要重用,可列出多个函数或过程名;④删除begin和end之间的所有语句,让初始化代码块留空。(4)生成DLL文件执行【Project】→【BuildEXAM