程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 用Delphi編寫可被其它語言調用的DLL

用Delphi編寫可被其它語言調用的DLL

編輯: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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved