sinanergin@hotmail.com
merhaba arkadaşlar
Delphi programlarınızda DLL(Dynamic Link Library)
kütüphane dosyalarını nasıl kullanabileceğiniz hakkında
bilgi ve örnek vereceğim.Umarım faydalı olur(Hiç bilmeyene göre anlatacağım isteyenler açıklamaları okumayabilirler).
DLL dosyaları programın çalıştığı exe dosyasının haricinde
derlenerek diğer programlama dillerinde de kullanılabilen
kütüphane dosyalarıdır.Windows işletim sistemi birçok DLL dosyası
kullanarak sadece ihtiyaç duyduğu kodları çalıştırmakta ve sistem yükünü
hafifletmektedir.
DLL kullanımının avantajları vardır:
>>Exe içine yazdığınız her kod, program çalıştırıldığında hafızaya yüklenir. Eğer program içiçe kompleks yapıda ise bunun önemi daha iyi anlaşılır.
>>Birden çok projede aynı kodları kullanıyorsanız bunları prosedürler halinde DLL de saklayarak düzenli çalışabilirsiniz.
DLL kullanımının dezavantajlarıda vardır:
>> delphinin exe dosyası tüm kodları içerdiği için taşınabilir ve tüm bilgisayarlarda çalıştırılabilir.Fakat Visual Basic in yaptığı gibi(visual basic exe dosyaları çalışabilmek için 6 tane DLL dosyasına ihtiyaç duyar) sizde exe haricinde DLL dosyası kullanırsanız, her bilgisayarda çalışmayabilir mecburen DLL dosyasınıda taşımanız gerekebilir.Bunu aşmak için setup yani kurulum dosyası hazırlayarak bu sorunu aşabilirsiniz.
Şimdi gelelim Delhide DLL nasıl yazılır ve projelerde nasıl kulanılır.
Rahat anlayabilmek için basit bir örnekle açıklayalım.
Örnekte iki sayıya çarpma,toplama yaptıracağız. İşlem prosedürleri DLL Dosyasına yazılacaktır.
Öncelikle File-close all yaparak tüm projeleri kapatın ve file new-other-dll wizard yapın
kodlar şu şekilde olacaktır.
/////DLL dosyası----------------------------------------
library topla_dll;
uses
SysUtils,
Classes;
{$R *.res}
function carp(x,y:integer):integer;export;
begin
carp:=x*y;
end;
function topla(x,y:integer):integer;export;
begin
topla:=x+y;
end;
exports topla,carp;
begin
end.
bu kodların ardından kaydedin ve adını "topla_dll" verin ve ardından CTRL+F9 yaparak derleyin
kaydettiğiniz klasöre bakarsanız DLL dosyasının oluşmuş olduğunu göreceksiniz.
/////Proje------------------------------------------------
iki tane buton ekleyin ve kodları aşağıya göre uyarlayın.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
Function topla(x,y:integer):integer;far;external 'topla_dll.dll';
Function carp(x,y:integer):integer;far;external 'topla_dll.dll';
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage('10+5 ='+inttostr(topla(10,5)));
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Showmessage('8*5 ='+inttostr(carp(8,5)));
end;
end.
-----------------------------------
kolay gelsin. iyi çalışmalar.