Mega Code Archive

 
Categories / Delphi / Ide Indy
 

Dll yazma ve kullanma

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.