电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> delphi技术>>Dephi 之DLL技巧汇集(6):

Dephi 之DLL技巧汇集(6)

来源:远方网络 | 2005-12-31 9:34:03 | (有1846人读过)

第三步:在Main.pas文件中,在“implementation”语句后加入: uses MaxMin;

第四步:在Form上双击“运行”按钮对该按钮的“Click”事件编程,代码如下: procedure TTestVcDLLForm.btnRunClick(Sender: TObject); begin edtMax.Text:=IntToStr(Max1(StrToInt(edtInt1.Text), StrToInt(edtInt2.Text),StrToInt(edtInt3.Text))); //调用动态链接库中的函数Max1 edtMin.Text:=IntToStr(Min1(StrToInt(edtInt1.Text), StrToInt(edtInt2.Text),StrToInt(edtInt3.Text))); //调用动态链接库中的函数Min1 end; 保存该文件。

第五步:将上述1.中VC++6所建立的动态链接库“MaxMin.DLL”拷入Delphi的当前工作目录中。

第六步:运行。结果如图2所示。

图2:隐式调用DLL运行结果

点击打开新窗口


点击打开新窗口

图3:显式调用DLL运行结果

(2)显示调用 第一步:同隐式调用。只是将Form的“Caption”属性改为“VC++的DLL显式调用测试”。

第二步:选择“File/New…”,在出现的“New Item”对话框中选择“unit”,按“OK”钮,生成一个空的源文件,在该文件中输入以下内容: unit Unit1; interface type TMin1=function(x,y,z:Integer):Integer; stdcall; TMax1=function(x,y,z:Integer):Integer; stdcall; THandle=Integer; implementation end. 选择“File/Save As…”,将上述文件存为“MaxMin.pas”。

第三步:在Main.pas文件中,在“implementation”语句后加入: uses MaxMin;

第四步:在Form上双击“运行”按钮对该按钮的“Click”事件编程,代码如下: procedure TTestVcDLLForm.btnRunClick(Sender: TObject); var Handle:THandle; Min1:TMin1; Max1:TMax1; begin Handle:=LoadLibrary('MaxMin.dll'); //将“MaxMin.dll”的文件映象映射进调用进程的地址空间 if Handle<>0 then begin @Min1:=GetProcAddress(Handle,'Min1'); //取得DLL中函数Min1( )的地址 @Max1:=GetProcAddress(Handle,'Max1'); //取得DLL中函数Max1( )的地址 if (@Min1<>nil) and (@Min1<>nil) then begin edtMin.Text:=IntToStr(Min1(StrToInt(edtInt1.Text), StrToInt(edtInt2.Text),StrToInt(edtInt3.Text))); //调用动态链接库中的函数Min1 edtMax.Text:=IntToStr(Max1(StrToInt(edtInt1.Text), StrToInt(edtInt2.Text),StrToInt(edtInt3.Text))); //调用动态链接库中的函数Max1 end else ShowMessage('调用函数“GetProcAddress”时出错!'); FreeLibrary(Handle); //从进程的地址空间中解除“MaxMin.dll”文件的映射 end; end; 保存该文件。

第五步:将上述1.中VC++6所建立的动态链接库“MaxMin.DLL”拷入Delphi的当前工作目录中。

第六步:运行。结果如图3所示。 以上实例均编译通过,运行正确。

三、结束语 动态链接库为不同编程环境下的应用程序之间的连接提供了方便,节省了内存,提高了速度,同时也丰富了PowerScript语言的编程能力。动态链接库是Windows下程序组织的一种重要方式,使用动态链接库可以极大地保护用户在不同开发工具、不同时期所做的工作;利用动态链接库,用户可以逐步去构筑自己的程序模块库,为今后的工作积累素材。


delphi技术热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号