动态链接库学习根据Delphi提供的有关   DLL编写和调用的帮助信息,你可以很快完成一般的   DLL编写和调用的   应用程序。本文介绍的主题是如何编写和调用能够传递各种参数(包括对象实例)的   DLL。例如,   主叫程序传递给   DLL一个ADOConnection   对象示例作为参数,   DLL中的函数和过程调用通过该对象   实例访问数据库。   
动态链接库学习    
动态链接库学习  需要明确一些基本概念。对于   DLL,需要在主程序中包含   exports子句,用于向外界提供调用   接口,子句中就是一系列函数或过程的名字。对于主叫方(调用   DLL的应用程序或其它的   DLL),   则需要在调用之前进行外部声明,即external保留字指示的声明。这些是编写   DLL和调用   DLL必须   具备的要素。   
动态链接库学习    
动态链接库学习  另外需要了解Object   Pascal   中有关调用协议的内容。在Object   Pascal   中,对于过程和函数   有以下五种调用协议:   
动态链接库学习    
动态链接库学习  指示字   参数传递顺序   参数清除者   参数是否使用寄存器     
动态链接库学习  register   自左向右   被调例程   是     
动态链接库学习  pascal   自左向右   被调例程   否     
动态链接库学习  cdecl   自右向左   调用者   否     
动态链接库学习  stdcall   自右向左   被调例程   否     
动态链接库学习  safecall   自右向左   被调例程   否     
动态链接库学习    
动态链接库学习  这里的指示字就是在声明函数或过程时附加在例程标题之后的保留字,默认为register,即是   唯一使用   CPU寄存器的参数传递方式,也是传递速度最快的方式;   
动态链接库学习    
动态链接库学习  pascal:   调用协议仅用于向后兼容,即向旧的版本兼容;   
动态链接库学习  cdecl:   多用于   C和   C
++语言编写的例程,也用于需要由调用者清除参数的例程;   
动态链接库学习  stdcall:   和safecall主要用于调用Windows   API   函数;其中safecall还用于双重接口。   
动态链接库学习  在本例中,将使用调用协议cdecl   ,因为被调用的   DLL中,使用的数据库连接是由主叫方传递   得到的,并且需要由主叫方处理连接的关闭和销毁。   
动态链接库学习    
动态链接库学习  下面是   DLL完整源程序和主叫程序完整源程序。包括以下四个文件:   
动态链接库学习    
  end.

相关文章:

  • 2022-12-23
  • 2021-11-03
  • 2022-12-23
  • 2021-08-20
  • 2021-12-14
  • 2021-10-04
  • 2021-07-06
  • 2021-11-18
猜你喜欢
  • 2021-04-12
  • 2021-11-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案