网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
DLL文件在Delphi的创建及调用
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

    现时系统的开发,多数都在几人以上的组合,工合作方式开发,这样也方便系统的快速开发目的。
而DLL的方法最为方便。我现整理了我的一些这方面资料,希望能帮助一些有需要的同行。


一.函数过程的写法:

library FIRSTDLL;

uses
  SysUtils,
  Classes;

{$R *.RES}
// 1.定义函数具体过程和输出接口方式
// --------------------------------
// 函数 1
// 功能:事数据3倍放大函数
// --------------------------------
function PenniesToSoins(SourceResult:Integer):Integer;stdCall;
begin
  if SourceResult>0 then
    Result:=SourceResult*3 //结果存放于Result
  else
    Result:=SourceResult;
end;

exports
  PenniesToSoins; //2.函数输出口定义
  
end.

==
==

二.在DLL中创建Form
=======================
1.一步,创建DLL工程,及加入设置好的Form

library MGRPERSN;
uses
  SysUtils,
  Classes,
  MGRPERFM in ''MGRPERFM.pas'' {FormPERSON};//1.Form的代码(与一般的Form一样)

{$R *.RES}
exports
   ShowPerSN;//2.函数输出口定义
begin
end.

2. 在DLL设定的Form的设置
===========================================
unit MGRPERFM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ToolWin, ImgList;

type
  TFormPERSON = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

//些处的变量不再用,给其改个地方,如下(改变之一)
//var
//  FormPERSON: TFormPERSON;

{ Declare the export function 宣布Form函数出口}//改变之二
function ShowPerSN(AHandle: THandle; ACaption: String):BOOL; StdCall;

implementation

{$R *.DFM}
//函数据过程定义
function ShowPerSN(AHandle: THandle; ACaption: String):BOOL;
var
  FormPERSON: TFormPERSON; //定义窗体类(上面的放到了此处)
begin
  // Copy application handle to DLL''s TApplication object
  //拷贝应用程式句柄给DLL的应有程式对象
  Application.Handle := AHandle;
  FormPERSON := TFormPERSON.Create(Application);//创建控件TForm
  try
    FormPERSON.Caption := ACaption;
    FormPERSON.ShowModal;//显示此Form
    // Pass the date back in Result
    Result := False; //反回成功值
  finally
    FormPERSON.Free;
  end;
end;

三.DLL中函数及窗体的调用
==========================
1.调用方法一
--------------
implementation //在此的下方写明调用函数的DLL

{$R *.DFM}
//DLL内函数调用
function PenniesToSoins(SourceResult:Integer):Integer;
     StdCall external ''FIRSTDLL.DLL'';

..

2.调用方法二
==============
type  //在此创建一个函数类
  // 1 -------------------------------
  { First, define a procedural data type, this should reflect the
    procedure that is exported from the DLL. }
  { Create a new exception class to reflect a failed DLL load }
  

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号