电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章嵌入式系统如何用Delphi编写dll文件

如何用Delphi编写dll文件

11-20 17:13:35 | http://www.5idzw.com | 嵌入式系统 | 人气:374
标签:嵌入式系统开发,嵌入式开发,http://www.5idzw.com 如何用Delphi编写dll文件,http://www.5idzw.com

  type
   TForm1 = class(TForm)
   ADOConnection1: TADOConnection;{ 本地数据库连接 }
   Memo1: TMemo; { 用于显示信息 }
   private
   public
   end;

  { 该过程向外提供 }
  procedure DoTest(H: THandle; { 获得调用者的句柄 }
   AConn: TADOConnection;{ 获得调用者的数据库连接 }
   S: string; { 获得一些文本信息 }
   N: Integer); { 获得一些数值信息 }
   cdecl; { 指定调用协议 }

  implementation

  {$R *.DFM}

  procedure DoTest(H: THandle; AConn: TADOConnection; S: string; N: Integer);
  begin
   Application.Handle := H; { 将过程的句柄赋值为调用者的句柄 }
   { 上面语句的作用在于, DLL的句柄和调用者的句柄相同,在任务栏中就不会 }
   { 各自出现一个任务标题了。 }
   with TForm1.Create(Application) do try{ 创建窗体 }
   Memo1.Lines.Append(‘成功调用‘); { 显示一行信息 }
   ADOConnection1 := AConn; { 获得数据库连接的实例 }
   Memo1.Lines.Append(
   ADOConnection1.ConnectionString +
   ‘ - ‘ + S + ‘ - ‘ + IntToStr(N)); { 根据得到的参数显示另一行信息 }
   ShowModal; { 模式化显示窗体 }
   finally
   Free; { 调用结束时销毁窗口 }
   end;
  end;

  end.


  {---------- 调用者 Project1.DPR,很普通的工程文件 ----------}

  program Project1;

  uses
Forms,
   Unit1 in ‘Unit1.pas‘ {Form1};

  {$R *.RES}

  begin
   Application.Initialize;
   Application.CreateForm(TForm1, Form1);
   Application.Run;
  end.


  {---------- 调用者单元Unit1.PAS ----------}

  unit Unit1;

  interface

  uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   StdCtrls, Db, ADODB;

  type
   TForm1 = class(TForm)
   Button1: TButton; { 按此按钮进行调用 }
   ADOConnection1: TADOConnection; { 本地数据库连接,将传递给 DLL }
   procedure Button1Click(Sender: TObject);{ 调用 DLL}
   private
   public
   end;

  var
   Form1: TForm1;

  implementation

  {$R *.DFM}

  { 外部声明必须和 DLL中的参数列表一致,否则会运行时错误 }
  procedure DoTest(H: THandle; { 传递句柄 }
   AConn: TADOConnection; { 传递数据库连接 }
   S: string; { 传递文本信息 }
   N: Integer); { 传递数值信息 }
   cdecl; { 指定调用协议 }
   external ‘Project2.dll‘;{ 指定过程来源 }

  { 调用过程 }
  procedure TForm1.Button1Click(Sender: TObject);
  begin
   DoTest(Application.Handle,
   ADOConnection1,
   ‘Call OK‘,
   256);
  end;

  end.
Delphi中高级DLL的编写和调用(2)

{---------- DLL中的单元 Unit2.PAS ----------}

  unit Unit2;

  interface

  uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   Db, ADODB, StdCtrls, Menus;

  type
   TForm1 = class(TForm)
   ADOConnection1: TADOConnection;{ 本地数据库连接 }
   Memo1: TMemo; { 用于显示信息 }
   private
   public
   end;

  { 该过程向外提供 }
  procedure DoTest(H: THandle; { 获得调用者的句柄 }
   AConn: TADOConnection;{ 获得调用者的数据库连接 }
   S: string; { 获得一些文本信息 }
   N: Integer); { 获得一些数值信息 }
   cdecl; { 指定调用协议 }

  implementation

  {$R *.DFM}

  procedure DoTest(H: THandle; AConn: TADOConnection; S: string; N: Integer);
  begin
   Application.Handle := H; { 将过程的句柄赋值为调用者的句柄 }
   { 上面语句的作用在于, DLL的句柄和调用者的句柄相同,在任务栏中就不会 }
   { 各自出现一个任务标题了。 }
   with TForm1.Create(Application) do try{ 创建窗体 }
   Memo1.Lines.Append(‘成功调用‘); { 显示一行信息 }
   ADOConnection1 := AConn; { 获得数据库连接的实例 }
   Memo1.Lines.Append(
   ADOConnection1.ConnectionString +
   ‘ - ‘ + S + ‘ - ‘ + IntToStr(N)); { 根据得到的参数显示另一行信息 }
   ShowModal; { 模式化显示窗体 }
   finally
   Free; { 调用结束时销毁窗口 }
   end;
  end;

  end.


  {---------- 调用者 Project1.DPR,很普通的工程文件 ----------}

  program Project1;

  uses

Forms,
   Unit1 in ‘Unit1.pas‘ {Form1};

  {$R *.RES}

  begin
   Application.Initialize;
   Application.CreateForm(TForm1, Form1);
   Application.Run;
  end.


  {---------- 调用者单元Unit1.PAS ----------}

  unit Unit1;

  interface

  uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   StdCtrls, Db, ADODB;

  type
   TForm1 = class(TForm)
   Button1: TButton; { 按此按钮进行调用 }
   ADOConnection1: TADOConnection; { 本地数据库连接,将传递给 DLL }
   procedure Button1Click(Sender: TObject);{ 调用 DLL}
   private
   public
   end;

  var
   Form1: TForm1;

  implementation

  {$R *.DFM}

  { 外部声明必须和 DLL中的参数列表一致,否则会运行时错误 }
  procedure DoTest(H: THandle; { 传递句柄 }
   AConn: TADOConnection; { 传递数据库连接 }
   S: string; { 传递文本信息 }
   N: Integer); { 传递数值信息 }
   cdecl; { 指定调用协议 }
   external ‘Project2.dll‘;{ 指定过程来源 }

  { 调用过程 }
  procedure TForm1.Button1Click(Sender: TObject);
  begin
   DoTest(Application.Handle,
   ADOConnection1,
   ‘Call OK‘,
   256);
  end;

上一页  [1] [2] [3] [4] 

,如何用Delphi编写dll文件
上一篇:流量计算机
关于《如何用Delphi编写dll文件》的更多文章