中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Delphi > 综合文章
利用DLL在程序是实现文件拷贝
作者:未知 时间:2005-08-07 20:57 出处:编程爱好者网站 责编:chinaitpower
              摘要:利用DLL在程序是实现文件拷贝
作者:未名码头  
  
在所开以的应用软件中,有时我们对某些文件进行拷贝(如对数据库进行备份、制作
安装程序),但是常用的一些语言却没有提供可直接进行文件拷贝的过程或函数。为此
,我曾利用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;

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有