Bir Dll Sorusu..!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Bir Dll Sorusu..!

Mesaj gönderen feinpus »

:!: İlk olarak 2000/NT/XP ortamında Delphi 7 kullanıyorum.

:arrow: Program çalışırken göstereceğim bir dll dosyasını nasıl yüklerim?

:arrow: Ve bu dll dosyasının içerisindeki fonksiyon isimlerini nasıl bulabilirim?
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Bu konu hakkında hiç uygulama yapmadım ama bir arkadaşımdan duyduğum kadarıyla uzantısını Bpl eye çevir. Component işlemlerini yap. Ondan sonra bileşen gibi fonksiyonlarına eriş.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

Bunu ben program çalıştığı anda yükleyip içerisindeki fonksiyonları bularak bunların içerisinden istediğim fonksiyonları kullanmak istiyorum sanırım senin söylediğin gibi olmaz herhalde.
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

İstediğiniz şekilde olmasa bile Fonksiyonları görmeniz açısından faydalı olabilir. Ama tahminim isteğinizi karşılar.

Başka bir önerim ise!!!
Run time için
Fonksiyon isimlerini bildikten sonra çağırma işlemini şu şekilde yapabileceğin kanısındayım

Kod: Tümünü seç

Fonksiyon olarak API tanımı : 
     Function isim ( parametreler : Tip ) :Tip ;Far ;External ‘Kütüphane adı’ ; 
Kütüphane adı dll uzantılı dosyayı vermelisin.

Bu söylediklerimi fikir olarak veriyorum.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

Tamam bu kodu daha programı derlemeden yerleştirdiğimde kullanabiliyorum ama hiç bir fonksiyon tanımlamadan derlediğim bir dll içindeki fonksiyonu nasıl çağırırım.

Mesela şöle bir fonksiyon yazıyorum;

function dllcagir(funcismi,dllismi:string):string;
begin
//Bu boşluğu nasıl doldurmalıyım ki daha sonra
end;


dllcagir('mesaj','project1.dll');

//dediğimde program tanısın... :?:
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

delphi dll dynamic loading diye aramalar yapsanız epey sonuc blursunuz
ilk sırada
http://delphi.about.com/b/a/007329.htm
bir de benim onceden buldugum faydalı bir sitede
http://www.developers.demon.co.uk/dynamicdll.html
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Yapmak istediğiniz olay için biraz daha detay verebilirmisiniz? Anlayamadım :oops:

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

Aslında demin runtime olarak dll yüklemeyi buldum çok basit bir yolmuş aslında

Kod: Tümünü seç

LoadLibrary('dllname');
dediğinde dll dosyasını yüklüyor fakat şimdide içindeki fonksiyonların komutlarını runtime olarak nasıl verebileceğimi arıyorum...

Bir daha hatırlatayım ben programa programı derlemeden önce hiç bilmediğim bir dll yükleyecem yani çalışma anında aklıma hangi dll ismi gelirse onu.
Oldeye Software
http://www.oldeye.com
Masterix
Moderator
Mesajlar: 3
Kayıt: 11 Haz 2003 12:30
Konum: ISTANBUL
İletişim:

Mesaj gönderen Masterix »

aşağıdaki örnek bir fikir verecektir.

iyi çalışmalar

Kod: Tümünü seç

procedure DllSample;
var
  dllHandle: THandle;
  dllFunc: function(Value: Integer): Boolean;
  Flg: Boolean;
  dllTestValue: Integer;
begin
   dllHandle := LoadLibrary('Abc.Dll');
   if dllHandle <> 0 then
   begin
      @dllFunc := GetProcAddress(dllHandle, 'Fonksiyon1');
      if @dllFunc = nil then
      begin
         //böyle bir fonksiyon yok
      end
      else
      begin
         //fonksiyon bulundu
         flg := dllFunc(dllTestValue);
      end;
      FreeLibrary(dllHandle);
   end;
end;
Cevapla