program dll dosyasını bulamayınca hata veriyor
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
program dll dosyasını bulamayınca hata veriyor
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ı
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ı
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
ö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
www.polisoft.com.tr
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
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

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.
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
www.polisoft.com.tr
hocam tekrar meraba
functionumı ve kullanmam gereken kodları yolluyorum
dll yi bu şekil yüklüyorum
kullanmam gereken komut
program(degerial, false);
buda dlldeki komutum
gibi bi ornegim var kısaltım su an
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;
Merhaba şu şekilde kullanmayı denermisiniz,
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.
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
www.polisoft.com.tr