Delphi封装类到DLL

delphi it

因为个人需要研究了一下封装类到DLL。把他发表出来

用Delphi封装类到DLL。

 

一个公共单元


 1 unit ITest;
 2
 3 interface
 4
 5 type
   IT = interface
     function GetString:string;
     procedure ShowMsg(p:PChar);
     procedure Msg;
10   end;
11
12 implementation
13
14 end.

 

类单元,这个写在DLL里面的


 1 unit UTest;
 2
 3 interface
 4
 5 uses
   SysUtils,
   Windows,
   ITest;
 9
10 type
11   TTest = class(TInterfacedObject,IT)
12   private
13     i:Integer;
14   protected
15
16   public
17     constructor Create; //override;
18     destructor Destroy; override;
19     function GetString:string;
20     procedure ShowMsg(p:PChar);
21     procedure Msg;
22   published
23
24   end;   
25
26 implementation
27
28 constructor TTest.Create;
29 begin
30   i:=0;
31 end;
32
33 destructor TTest.Destroy;
34 begin
35   inherited;
36 end;
37
38 function TTest.GetString:string;
39 begin
40   Result := 'Test string';
41 end;
42
43 procedure TTest.ShowMsg(p:PChar);
44 begin
45   MessageBox(0,p,'Test',MB_OK);
46 end;
47
48 procedure TTest.Msg;
49 begin
50   Inc(i);
51   MessageBox(0,'Test MessageBox',PChar(IntToStr(i)),MB_OK);
52 end;
53
54 end.


DLL的prj


 1 library Test;
 2
 3 uses
   SysUtils,
   Classes,
   ITest in 'ITest.pas',
   UTest in 'UTest.pas';
 8
 9 {$R *.res}
10
11 function TestCreate:IT; stdcall;
12 begin
13   Result := TTest.Create;
14 end; 
15
16 exports
17   TestCreate; //用此初始化
18
19 begin
20 end.


 

DLL部分就这样了,到EXE部分调用


 1 uses
   ITest;  //引用单元
 3
 4 function TestCreate:IT; stdcall; external 'Test.dll' name 'TestCreate'; //引用DLL函数
 5
 6 //声明作为测试
   private
     AA:IT;
     BB:IT;
10
11 procedure TForm1.FormCreate(Sender: TObject);
12 begin
13   AA:= TestCreate;
14   BB:= TestCreate;
15 end;
16
17 procedure TForm1.Button1Click(Sender: TObject);
18 begin
19   Button1.Caption := AA.GetString;
20 end;
21
22 procedure TForm1.Button2Click(Sender: TObject);
23 begin
24   AA.ShowMsg('123abc');
25 end;
26
27 procedure TForm1.Button3Click(Sender: TObject);
28 begin
29   AA.Msg;
30 end;
31
32 procedure TForm1.Button4Click(Sender: TObject);
33 begin
34   BB.Msg;
35 end;



效果图
 
转载自http://www.cnblogs.com/ruguo/archive/2012/08/26/2657821.html

评论:
封装到DLL里面可以发布你的DLL让别人引用,可以不用公开你的代码。还有在中大型软件中利用接口是很普遍的形式,便于多个程序员合作编写,这样可以使不同功能分开……
 
恐怕你还非得引用 sharemem.pas 才行,不然放别人电脑上会报错。

相关推荐

  • delphi对.net2.0webservice封装问题 delphi调用WebService一直发生500错误,可是同样的Service用.net调用,xmlspy调用都没有问题。因此估计Delphi对Service的封装有问题。跟踪发现:竟然没有参数传递给Webservice,参数或者是nul
  • iOS封装actionSheet,选择照相或从相册选择图片—有坑 这是一个所有人都会用到的一个功能,这也是基本所有人都会封装的功能,功能简单,但是这篇文章所要展示的是在封装过程中可能遇到的一个深深的坑。封装第一步:知道这项功能具体是干什么的,有一个具体的目标封装第二步:确立需求关系,你需要传入什么数据才能
  • 中国封装用陶瓷外壳行业市场深度评估及十三五投资价值预测咨询报告 【报告主要内容】封装用陶瓷外壳,封装用陶瓷外壳行业报告,封装用陶瓷外壳市场,封装用陶瓷外壳投资分析,封装用陶瓷外壳项目投资,封装用陶瓷外壳前景,封装用陶瓷外壳发展,封装用陶瓷外壳销售渠道,封装用陶瓷外壳产能,封装用陶瓷外壳可行性,封装用陶瓷
  • 先进封装技术的广泛应用将改变半导体产业竞争 我国半导体封装业相比IC设计和制造最接近国际先进水平,先进封装技术的广泛应用将改变半导体产业竞争格局,我国半导体封装业在“天时、地利、人和”有利环境下有望在国际竞争中实现“弯道超车”。  半导体封装地位提升  随着摩尔定律的不断微缩化以及1
  • DELPHI线程封装 就是一个 事件等待过程 typeTSyncProc=recordSyncRec:PSynchronizeRecord;Signal:THandle;end;PSyncProc=^TSyncProc;varSyncList:TList=nil;ThreadLock:
  • 太阳能庭院灯 二正装封装和覆晶封装优缺点LED封装可以简单分为正装芯片封装与覆晶封装 光输出更高效率更高:欧司朗光电半导体正使用搭载薄膜技术的高效芯片装备其径向红外LED(IRED)。这一改变将影响采用T1(3mm)和T1¾(5mm)封装及表面贴装径向(SMR)封装、波长为850nm和950nm的发射器的整个产
  • Ghost系统封装 系统封装主要应用在光盘镜像的制作上面  如果你了解GHOST使用方法那就应该对封装有一定的了解或者说印象。  系统封装,说简单就是把系统制作成镜像的方法刻录到光盘,用在系统安装上面.系统封装,不同于系统的正常安装。最本质的区别在于系统封装是
  • 半导体封装技术的发展趋势 封装的作用及电子封装工程的地位过去,人们对"封装技术"的理解,仅限于连接、组装等,涉及的范围很窄,且多以一般的生产技术来对待。随着电子信息产业的迅猛发展,"封装技术"也逐步演变为"电子封装工程"。在讨论电子封装:I:程的发展趋势时,需要摆脱
  • 封装系统 一、前期基础工作:1、准备所需工具软件*一张光盘启动盘,要有GHOST8.0以上.*S&R&S_V9.5.智能系统封装工具*DEPLOY.CAB(在系统安装光盘:\SUPPORT\TOOLS目录下自带)注意:WIN2
  • 系统封装完整教程  系统封装主要应用在光盘镜像的制作上面:  如果你了解GHOST使用方法那就应该对封装有一定的了解或者说印象。  系统封装,说简单就是把系统制作成镜像的方法刻录到光盘,用在系统安装上面.系统封装,不同于系统的正常安装。最本质的区别在于系统封
  • 《板级封装和制造技术现状》 高性能、低成本的封装需求驱动着半导体行业开发创新的解决方案。将晶圆级封装转变为大尺寸的板级封装是降低整体成本的一条新途径。到2017年板级封装产业规模将达到1.09亿美元,到2020年将达到4.05亿美元。StatusofPanel-Lev
  • IC封装知识 一、什么叫封装  封装,就是指把硅片上的电路管脚,用导线接引到外部接头处,以便与其它器件连接。封装形式是指安装半导体集成电路芯片用的外壳。它不仅起着安装、固定、密封、保护芯片及增强电热性能等方面的作用,而且还通过芯片上的接点用导线连接到封装

热门评论

你的评论

就没有什么想说的吗?

最新博客

关于我们 加入传客 媒体报道 帮助中心 传客活动 免责声明 联系我们 移动版 移动应用

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X