易截截图软件、单文件、免安装、纯绿色、仅160KB

在Delphi和VC中创建和调用动态链接库

大家在软件开发时经常会遇到这样的情况,在不同的开发环境中为实现一些功能相同的过程,由于开发所使用的设计语言不同,因而不得不编写许多类似的代码,甚至有时要在同一个开发环境不同项目中重写代码,这就造成了很大的资源浪费。动态链接库能较好的解决这个问题,重复利用代码将大大提高了开发效率。一般,用户在应用程序中基于如下要求创建和使用DLL:
  1. 在不同的可执行文件之间共享的程序;
  2. 在设计应用程序时,将其拆分成各个相互独立功能部件,为以后这些功能部件各自升级提供方便的途径。
  动态链接库将共享程序或功能部件做成库中的函数,形成DLL文件,其它应用程序通过使用DLL调用这些函数。在这里将对Delphi和VC中创建和使用动态链接库的方法做一介绍。Delphi和VC定义的动态链接库均可在两者的开发环境中使用。
  一、 用Delphi创建DLL
  Delphi的DLL创建并不复杂,下面向大家介绍Delphi的DLL创建方法。
  (1)首先创建一个新的DLL项目(NewProject)project1,文件头部为:
library Project1;
  (2)USES语句后面加入ExPorts语句,指明调用DLL的函数名,形式为:
exports
checkpwd name 'checkpwd';
  (3)在DLL的Pas文件中Type......End后加入该DLL的函数或过程的声明,形式如下:
FunctionName(argment):Boolean;export;
  
  该函数也可以存在于另一个pas文件中(如Unit1.pas),此时只需在项目文件中加入:
uses
Unit1 in 'Unit1.pas' {Form1};
  值得注意的是,该函数或过程应加入窗体的Create和Free(产生和释放)方法。
  (4)对项目进行编译即形成DLL文件,可被其它项目调用。
二、Delphi中DLL的调用
  调用DLL有两种方法,一种是在应用程序装载时调用,另一种是在应用程序运行时调用。
  (1) 装载时调用DLL
  在调用DLL的Pas文件中,对DLL函数进行外部声明,声明应位于Implementation后,形式如下:
Implementation
Function functionname(argment):Boolean;far;External 'DllName';
  
  其中External关键字后面的引号内是DLL的文件名,该文件一般应放在系统的system目录下,或与调用它的项目同一目录。声明以后即可在Pas文件任何地方引用DLL函数。
  装载时调用DLL的优点是速度较快,程序间也可共享代码。
  (2) 运行时调用DLL
  DLL的另一种调用方法是在运行时调用。这种方法要调用到Windows的API函数LoadLibrary,GetProcAddress,FreeLibrar


相关文档:

delphi中ActiveX 和 Web

http://book.77169.com/data/web5302/20050228/20050228__3692503.html
ActiveX 和 Web
在Windows 操作系统下,有一个重要的机制,就是OLE ,就是可以让某
个应用程序(OLE Controller)访问其它应用程序(OLE Server)所提供的
功能,这样做的好处是,如果已经有了完成某项功能的程序,你就不必再为
某项功能编写特定 ......

用DELPHI创建DLL文件,封装窗体的实现方法实例

虽是原创,但是是参考过别人的作品,然后自己重新写的,目的是要给初学者一个更容易明白。
用DELPHI创建DLL文件,封装窗体的实现方法实例:
即一个程序不再是单一的一个EXE文件了,而是由一个EXE文件加N个DLL文件组成,这样做的原因是方便以后的维护与更新,也是跨平台开发的重要一步。
1, 打开DELPHI,新建一个Dl ......

用Delphi开发数据库应用程序的常用方式

用Delphi开发数据库应用,一般会涉及到闪屏(Splash)、登录窗口、主数据模块(或主数据库连接)以及主窗口。通常在项目文件中,splash窗口显示过,一些需要加载的资源、窗口加载过后,Application.Run之前,进行用户登录。
//测试CSDN博客对DELPHI代码的支持
program TEST;
uses
Forms,
Windows,
MainF in 'Ma ......

Delphi的Socket编程要分几步?

Delphi的Socket编程要分几步?
2008-12-20 02:03:24
 标签:Delphi Socket 编程   [推送到技术圈]
ClientSocket 和ServerSocket
几个重要的属性:   
1.client和server都有port属性,需要一致才能互相通信   
2.client有Address属性,使用时填写对方(server)的IP地址  & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号