首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 软件开发 → Delphi编程 → 文章内容

在Delphi应用程序中使用DLL

作者:佚名  来源:网上收集  发布时间:2005-12-10 0:19:14
 

<-SSE WIDTH=100% SSE->  Delphi不仅可调用C++产生的DLL模块,同样C++程序也可调用Delphi所产生的DLL部件。这样交互调用,无须重复开发,大大缩短了生产周期。……

  
Delphi与VisualBasic、VisualFoxPro等软件一样,属于RAD工具(快速应用开发工具)。适合开发32位或16位/32位混合应用程序。Delphi所使用的程序语言是ObjectPascal,是结构化、面向对象的编译型语言,具有高执行效率、可重用性、易维护性,及较强的异常处理能力、类封装能力等。VB与Delphi相比,VB不能对程序进行编译,只能解释执行,更重要的不同是Delphi具有较强的继承性,Delphi的应用程序可编译DLL模块,VB却无法编译,只能调用C编译的DLL。而Delphi不仅可调用C++产生的DLL模块,同样C++程序也可调用Delphi所产生的DLL部件。这样交互调用,无须重复开发,大大缩短了生产周期。

   一、用
Delphi创建DLL

  
Delphi的DLL创建并不复杂,下面向大家介绍Delphi的DLL创建方法。

  1、首先创建一个新的DLL项目(NewProject),因为DLL与调用它的主程序要分开编译。如果DLL模块已经建立在调用它的项目中(Project),则将它的窗体(Form)从Project 移出,另建一个新的项目(NewProject)。只需从File菜单选中NewProject项,然后将DLL的Pas模块文件加入到项目中,再将其自动建立的Form1删除即可。

  2、在DLL的DPR文件中把Program关键字改为Library,申明为动态链接库,在USES语句后面加入ExPorts语句,指明调用DLL的函数名。

  3、如果主程序的DPR文件已有DLL窗体CreateForm的语句,则将其去掉。

  4、在DLL的Pas文件中Type......End后加入该DLL的函数或过程的声明,形式如:  FunctionName(argment):Boolean;export;

  该函数或过程应加入窗体的Create和Free(产生和释放)方法。

  5、对项目进行编译即可。

   二、DLL的调用

  调用DLL有两种方法,一种是在应用程序装载时调用,另一种是在应用程序运行时调用。首先介绍装载时DLL的调用:

  (1)装载时调用DLL

Pas文件中,对DLL函数进行外部声明,声明应位于Implementation的Uses语句后,形式如下:

  Implementation

  UsesDialogs;

  FunctionName(argment):Boolean;far;External′CallName′;

  ......

  其中External关键字后面的引号内的字串是DLL的文件名。声明以后即可在Pas文件任何地方引用DLL函数。

  装载时调用DLL的优点是速度较快,程序间也可共享代码。

  (2)运行时调用DLL

  DLL的另一种调用方法是在运行时调用。要调用到Win dows的API函数:loadlibrary,Getprocaddress等。主要用于调用DELPHI和其它语言,特别是C++编译的DLL。

  假定你的DLL包括一个函数:

  FunctionMyFunc(aparam:word):string;export;

  首先在程序Type类型声明处加入一句:

  Type

  TMyfuncΚfunction(aparam:word):string;

  此句的作用如同C++中声明的函数指针。

  然后定义如下变量∶

  Var

  aptr:TFarproc;

  lhnd:THandle;

  s:string;

  其中Aptr,lhnd两变量声明必须有,s是DLL函数返回值,视情况而定。

  在调用DLL处加入如下语句进行DLL装载:

  lhnd:ΚLoadlibrary(′路径ιDLL文件名′);{

如lhnd:ΚLoadlibrary(′c:ιaaιbb.dll′);

  aptr:ΚGetprocAddress(lhnd,′Myfunc′);

  下面可直接调用DLL了:

  s:ΚTMyfunc(bptr)(60);{根据函数填相应的变量参数}

  调用完以后,用FreeLibrary释放DLL占用的内存:

  FreeLibrary(lhnd);

 

[] [返回上一页] [打 印]
  • 上一篇文章:Delphi中API编程--在Delphi中调用API函数
  • 下一篇文章:用DELPHI编程访问SQL SERVER数据库

  • 相关文章:
  • 简析XML及其在Delphi中的应用
  • 在Delphi中使用电子邮件
  • 怎样在DELPHI中实现文件切割/组合
  • 在Delphi应用程序中使用DLL
  • Delphi中API编程--在Delphi中调用API函数
  • 如何在Delphi中制作“动态选单”
  • [图文]在Delphi中定位文件位置
  • 在Delphi中如何控制其它应用程序窗口
  • 组件技术在Delphi中的实现(1)
  • 如何在Delphi中操作Excel
  • [图文]如何在Delphi中实现ASP编程
  • 在DELPHI中利用API实现网格内组件的嵌入
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号