DELPHI中开发DLL的例子 |
[ 2007-3-17 21:03:00 | By: roki ]
|
1。开发DLL 程序 ------------- 1)FILE—>NEW—>OTHER 选择NEW 标签中的 DLL Wizard 图标 自动生成一个产生 dll文件的模板程序(这个程序以 library project1 ; 开始的) ************************************************************************ library project1; {………一堆注释………} uses sysutils,classes; begin end. ************************************************************************ 2)FILE—>NEW—>OTHER 选择NEW 标签中的 unit 图标,添加一个unit 文件进dll 的工程文件中。 在这个unit 文件中定义编写功能函数,例如 ***************************注意蓝色粗体部分************************************************* unit Unit1; interface *********************************************************************************
开发以后必须在 前面dll的工程文件中添加一句 exports countnum; --------------------------- 添加以后 就成了这样的代码 ×××××××××××××××××××××××××××××××××× library Project1; { Important note about DLL memory management: ShareMem must be the uses {$R *.res} ×××××××××××××××××××××××××××××××××× 调试成功以后 会生成一个 project1.dll 文件 接着 我们把原工程关掉。生成DLL已经实现了,接着说说如何在程序中调用这个DLL,并且使用其中的countnum 函数。 新建一个工程(这个和普通工程的创建是一样的,)在unit 部分编写代码时implementation 前面写入一句 function countnum(i:integer):integer;far;external 'Project1.dll'; 意思就是调用同目录下的dll文件,当然,你要记得把刚才生成的Project1.dll先拷贝到你当前工程目录下哦。 unit的代码如下(关键是蓝色粗体部分): ×××××××××××××××××××××××××××××× unit Unit1; interface uses type var {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin n:=countnum(n); procedure TForm1.FormCreate(Sender: TObject); end.
-------------- 以上代码测试通过,100%原创,,,,,相信看完你会对dll的理解更深了一层,其实,dll可以理解成为一个函数库,或者过程库,只是他的函数和过程,是动态连接给程序使用的,当程序用到这个函数或者过程的时候才调用dll,如果不用到的时候,就不会调用,这就是动态连接的概念了。 动态连接的好处就是可以节省系统的很多内存资源。 |