10.12使用DLL的优点(2) 3.拓展开发工具的功能 DLL还具有语言无关性,可以在 Delphi7.0环境中创建被C++、VB 或其他支持DLL的语言使用DLL:同样也可用其他语言创建被 Delphi7.0 使用的DL。这样,如果一种语言存在不足,就可以通过访问另一种语 言创建的DLL来弥补,从而拓展了开发工具的功能。 10.2DLL的创建 根据DLL所完成的功能,把DLL分为以下三类: s完成一般功能的DLL; s用于数据交换的DLL s用于窗体重用的DLL。 Inprise Dephi
10.1.2 使用DLL的优点(2) 根据DLL所完成的功能,把DLL分为以下三类: 完成一般功能的DLL; 用于数据交换的DLL; 用于窗体重用的DLL。 10.2 DLL的创建 3. 拓展开发工具的功能 DLL还具有语言无关性,可以在Delphi 7.0环境中创建被C++、VB 或其他支持DLL的语言使用DLL;同样也可用其他语言创建被Delphi 7.0 使用的DLL。这样,如果一种语言存在不足,就可以通过访问另一种语 言创建的DLL来弥补,从而拓展了开发工具的功能
1021DLL工程文件 在 Delphi7.0中,编写一个DLL和编写一个一般的应用程序并没有太大 的区别,真正的不同在它们的工程文件上,一般应用程序的工程文件的格式 为 program工程名; uses子句; 程序体 而DLL工程文件的格式为: ibay工程名 UseS子句; exports子句; 程序体 说明两点 (1)一般应用程序的工程文件用 program作为关键字,而DLL工程文件用 Library作为关键字。不同的关键字通知 Delphi7.0编译器生成不同的可执行 文件, Program关键字生成eXe文件,而 Librarys关键字生成的是DLL文件 (2)在DLL中供其他应用程序使用的函数和过程必须用 Exports进行输出 Inprise Dephi
10.2.1 DLL工程文件 在Delphi 7.0中,编写一个DLL和编写一个一般的应用程序并没有太大 的区别,真正的不同在它们的工程文件上,一般应用程序的工程文件的格式 为: program 工程名; uses 子句; 程序体 而DLL工程文件的格式为: library 工程名; uses 子句; exports 子句; 程序体 说明两点: (1)一般应用程序的工程文件用program作为关键字,而DLL工程文件用 Library作为关键字。不同的关键字通知Delphi 7.0 编译器生成不同的可执行 文件,Program关键字生成.exe文件,而Librarys 关键字生成的是.DLL文件。 (2)在DLL中供其他应用程序使用的函数和过程必须用Exports进行输出
1022DL中的 Exports子句 格式如下: Exports 1,Ⅹ2,…,Xn; 其中Ⅹ1,X2可以是在 Exports子句之前已声明过的函数或过程,中间用逗 号分隔。在DLL的工程文件中,包含的过程或函数如果不在 Exports子句中列出 则其他应用程序就不能够使用它们。 Exports子句可以出现在一个程序或库的 声明部分,也可以出现在单元文件的 linterface或 mplementation中的任意位置, 出现的次数也没有限制 在动态链接库的输出部分,用到了如下3个标准指示。 (1) Name Name后面接一个字符串,作为该过程或函数的输出名,如 Exports Add name AddInt 则其他应用程序将用 AddIn调用该过程或函数。 (2)Index Index指示为过程或函数分配一个顺序号,如果不使用 I Index编号,则 Delphi7.0编译器将按照顺序进行分配,其数字范围是1-32767,使用ndex可 以加速调用过程或函数。 Inprise Dephi
10.2.2 DLL中的Exports子句 格式如下: Exports X1,X2,……,Xn; 其中X1,X2可以是在Exports子句之前已声明过的函数或过程,中间用逗 号分隔。在DLL的工程文件中,包含的过程或函数如果不在Exports子句中列出, 则其他应用程序就不能够使用它们。Exports子句可以出现在一个程序或库的 声明部分,也可以出现在单元文件的interface或implementation中的任意位置, 出现的次数也没有限制。 在动态链接库的输出部分,用到了如下3个标准指示。 (1)Name Name后面接一个字符串,作为该过程或函数的输出名,如: Exports Add name AddInt; 则其他应用程序将用AddInt调用该过程或函数。 (2)Index Index指示为过程或函数分配一个顺序号,如果不使用Index 编号,则 Delphi 7.0编译器将按照顺序进行分配,其数字范围是1~32767,使用Index可 以加速调用过程或函数
1022DL中的 EXports子句 (3) Resident 使用 Resident,则当DLL载入时,特定的输出信息始终保持在内存中, 这样当其他应用程序调用该过程时,可以比利用名字扫描DLL函数的入口 降低时间的开销。 1023编写DLL1) 起kon参出h 1.建立DLL工程文件 进入 Delphi7.0开发环境中,单击“新建”,出 圆 现图10-2时选择 DLL Wizard,进入代码资源管理器。 图102 Delphi7.0新建 对话框 动态链接库的源文件和程序文件并没有太大的区别,只是程序文件使 用 Program,而动态链接库文件使用 Library作为系统保留字。可以在打开 的资源管理器窗口中输入【例10-1】所示代码 Inprise Dephi
10.2.3 编写DLL (1) (3)Resident 使用Resident,则当DLL载入时,特定的输出信息始终保持在内存中, 这样当其他应用程序调用该过程时,可以比利用名字扫描DLL函数的入口 降低时间的开销。 10.2.2 DLL中的Exports子句 1. 建立DLL工程文件 进入Delphi 7.0开发环境中,单击“新建”,出 现图10-2时选择DLL Wizard,进入代码资源管理器。 图 10-2 Delphi 7.0新建 对话框 动态链接库的源文件和程序文件并没有太大的区别,只是程序文件使 用Program,而动态链接库文件使用Library作为系统保留字。可以在打开 的资源管理器窗口中输入【例10-1】所示代码