|
当前位置:电脑报电子版 > 1999 年 > 26 期 > 软件世界 > 利用DLL在程序中实现文件拷贝 |
《 利用DLL在程序中实现文件拷贝 》 |
在所开发的应用软件中,有时我们对某些文件进行拷贝(如对数据库进行备份、制作安装程序等),但是常用的一些语言却没有提供可直接进行文件拷贝的过程或函数。为此,我曾利用Delphi编制了可提供文件拷贝过程的动态连接库Copf.dll,其输出过程为CopyFile。由于DLL具有简化编程、运行速度快等诸多优点,且不受编程语言的限制,用Delphi编 写的Copf.dll同样可被VB、VC等面向对象语言进行静态或动态调用,从而方便地在程序中实现文件拷贝。 附源程序如下: library copf; uses SysUntils, Classes; Procedure copyfile(Sfname.Dfname:string):far;export;//带路径的文件名; Var Sourcef,Destinef:file; NumRead,NumWritten: Integer; Buf: array[1..4096] of Char;//定义缓冲区; Begin AssignFile(Sourcef,Dfname); Reset(Sourcef,1); AssignFile(Destinef,Dfname); Rewrite(Destinef,1); Repeat BlockRead(Sourcef,Buf,Size Of(Buf),NumRead);//读源文件; BlockWrite(Destinef,Buf,NumRead,NumWritten);//写目标文件; Until (NumRead = 0) or (NumWritten<>NumRead); CloseFile(Soucef); CloseFile(Destinef); End; Exports Copyfile;//输出过程; End; 以上源程序编译后便生成Copf.dll。 现就静态调用举例: unit Name; interface uses Windows…; Type Tzcform=class(Tform) … end; var Form1: Tform1; Implementation Procedure copyfile(Sfname,Dfname:string);far;external ′c:\copf′;//DDL路径名; {$R *.DFM} Procedure Tform1.CopyButtonClick(Sender: Tobject); Begin … if fileexist(Sfname)//如果源文件; then copyfile(Sfname,Dfname); … end; (河北 王寅龙) |
下载本期推荐软件 | 页 首 |
《电脑报》版权所有,电脑报网站编辑部设计制作发布 |