program dll dosyasını bulamayınca hata veriyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
notname
Üye
Mesajlar: 149
Kayıt: 11 Şub 2005 02:15

program dll dosyasını bulamayınca hata veriyor

Mesaj gönderen notname »

merhaba arkadaşlar sevgili üstatlar

programımda dll dosyası kullanıcaktım fakat bi sorunla karsılastım.

programımı actıgım zaman diznde dll dosyasını arıyor bulamassa acılmıyor.

bunu çözmek istiyorum mesela dll dosyasını programa gömebilirmiyim .
sanki dll bir dizindeymiş gibi kullanma ihtimalim varmı
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba ,
öncelikle , projede DLL dosyası kullanmanın çeşitli yolları var, Dinamik Yükleme yani DLL yi kullanan fonksiyon lazım olduğunda yükleme , ve Statik Yükeleme buda uygulamanızın ilk çalışması anında DLL yi hafızaya yükleme ki bu yöntem DLL yi bulamazsa program açılmayacaktır.

Dinamik DLL yüklemeye ilişkin aşağıdaki makaleyi incelemenizi öneririm.

viewtopic.php?p=66350#66350
Volkan KAMADAN
www.polisoft.com.tr
notname
Üye
Mesajlar: 149
Kayıt: 11 Şub 2005 02:15

Mesaj gönderen notname »

teşşekkürlerimi sunarım hocam inceliyorum linki
notname
Üye
Mesajlar: 149
Kayıt: 11 Şub 2005 02:15

Mesaj gönderen notname »

hocam ilgin için teşekkürler ama malesef yapamadım illede dll dosyasını programın acıldıgı dizinde bulmak istiyor, dinamik yüklemeyi'de denedim bu sefer dll'deki function calısmıyor.

bu şekil bir dongu aklıma geldi ama nasıl yapıcagımı bulamadım :)

eğer dll bulunduysa ve formcreate edildiyse dlldeki functionu calıstır diye bi dongu aklıma geldi ama nasıl yapıcagım bilmiyorum acıckası ilgilenen olursa minnetkar kalısırm

bu ara programın dll kullanma örneği bu şekilde

formcreate olayında dll'yi cıkartıyor

formcreate altında function ile dll'yi yüklüyor

onun aaltında dll'deki functionu calıstırıyor

ama gel gelelim dll'deki functionun kodunu girince dll yüklenemedi diyo eğer kkullanılcak functionu silersem acılıyo oldukça garip bişi :) yardımlarınızı esirgemeyin
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

DLLdeki fonksiyon çalışır ,
Büyük küçük harf uyumna dikkat emenizgerekiyor tam olarak procedureyi gönderirseniz bir bakalım daha çabuk yardımcı olaibliriz.
Volkan KAMADAN
www.polisoft.com.tr
notname
Üye
Mesajlar: 149
Kayıt: 11 Şub 2005 02:15

Mesaj gönderen notname »

hocam tekrar meraba

functionumı ve kullanmam gereken kodları yolluyorum

dll yi bu şekil yüklüyorum

Kod: Tümünü seç

function program(deger: DWORD; sadeceprogramsor: BOOL): BOOL; stdcall; external 'c:\windows\wmspdmos.dll';

kullanmam gereken komut

program(degerial, false);


buda dlldeki komutum

Kod: Tümünü seç

function program(deger:DWORD; sadeceprogramsor:BOOL):BOOL; stdcall;
exports
 program;
gibi bi ornegim var kısaltım su an
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba şu şekilde kullanmayı denermisiniz,

Kod: Tümünü seç

 procedure DinamikDLLYukle;
   type
    TYuklenecekFonksiyon = function (deger: DWORD; sadeceprogramsor: BOOL): BOOL;
   var
      DLLHandle   :Integer;
      fncprogram :TYuklenecekFonksiyon;     
   begin
      DLLHandle := SafeLoadLibrary('c:\windows\wmspdmos.dll');
        if DLLHandle<>0 then
          begin
            @fncprogram := GetProcAddress(DLLHandle , 'program');
            if @fncprogram <> nil then fncprogram(degerial, false); 
            FreeLibrary(DLLHandle);
          end;
   end; 

yanlız dikkat etmeniz gereken önemli şeylerden birisi daha öncede belirttiğim gibi DLL içinde çağıracağınız fonksiyonun adının büyük küçük harf duyarlı olarak değerlendimeniz gerektiğidir.
En son vkamadan tarafından 11 Eki 2005 08:53 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Volkan KAMADAN
www.polisoft.com.tr
notname
Üye
Mesajlar: 149
Kayıt: 11 Şub 2005 02:15

Mesaj gönderen notname »

hocam eywallah bi daha denicem insallah olur dikkatli oluyorum hata yapmamaya calısıyorum insallah olur saolun hocam iyi calışmalar
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

bir yanlışlık yapmışım değiştirdim
Volkan KAMADAN
www.polisoft.com.tr
notname
Üye
Mesajlar: 149
Kayıt: 11 Şub 2005 02:15

Mesaj gönderen notname »

hocam malesef olmadı ugrasın için teşekkürlerimi sunarım artık başka bir alternatif düşünücem iyi akşamlar
Cevapla