[摘要]作者:未名码头    在所开以的应用软件中,有时我们对某些文件进行拷贝(如对数据库进行备份、制作 安装程序),但是常用的一些语言却没有提供可直接进行文件拷贝的过程或函数。为此 ,我曾利用Delphi...
作者:未名码头    
在所开以的应用软件中,有时我们对某些文件进行拷贝(如对数据库进行备份、制作 
安装程序),但是常用的一些语言却没有提供可直接进行文件拷贝的过程或函数。为此 
,我曾利用Delphi编制了可提供文件拷贝过程的动态连接库Copy.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,1); 
Rewrite(Destinef,1); 
Repeat 
BlockRead(Sourcef,Buf,SizeOf(Buf),Numread);//读源文件 
BlockWrite(destinef,buf,NumRead,NumWritten);//写目标文件; 
Until (Numread=0) or (Numwritten<>numread); 
closeFile(soucef); 
Closefile(destinef); 
end; 
Esports 
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';//DLL路径名; 
{$R *.DFM} 
Procedure Tform1.CopyButtonclick(sender:tobject); 
Begin 
... 
if fileesist(sfname)//如果源文件; 
then copyfile(sfname,dfname); 
... 
end;  
关键词:运用DLL在程序是完成文件拷贝