DLL içinden Dinamik dizi döndüren fonksiyon çağırmak...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

evet , DLL deki bir fonksiyonu dinamik yükledim ve hatanın ,
FreeLibray(handle)İ komutunu vererek dll yi serbest bırakmak istediğimde oluştuğunu gördüm,
yani sorun dll içindemi sizce?

hata içinde too many consecutive sözcüğü geçiyor.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

s.a. hocam bu sorun bendede oldu hatta şu anda hala cevap yok...Ilk dll oluşturduğun zaman dll wizarddan orda borlandla ilgili bir bilgi var direk sharemem anlatıyor...Aynı hatayı bende mdi child larda yaşadım...Programın çalışmasında hiç bir sorun yok ama program kapanırken veya belli bir süre böle dururken çat diye invalid pointer olayına düşüyor...Bende yeni bu olayı çözdüm normal çözümün haricinde dll yüklerken....

Dll dinamik yüklerken yüklediğim function ve procedurelerin handellarını pointer değişkene aktardım ve dll unload edilirken bu pointer değişkenleri nil ettim sorunu çözdüm ama gelde bi de bana sor :)...Büyük ihtimalle seninkide böyle bir sorun olsa görek örneği gönderiyorum umarım yararına olur ve sorunu halledersin...

Kolay Gelsin

Kod: Tümünü seç

 if LibHandle <> 0 then
   begin
      ShowMessage('Kütüphane zaten yüklenmiş...');
      Exit;
   end;
   LibHandle := LoadLibrary('stok.dll');
   try
      if LibHandle = 0 then
      begin
         raise Exception.Create('Kütüphane Yüklenenemiyor');
         Exit;
      end;
      @Showmdichild  := GetProcAddress(LibHandle, 'Showmdichild');
      
   except
      FreeLibrary(LibHandle);

   end;


Mdi mainin on close da şöyle

Kod: Tümünü seç

begin
   @Showmdichild   := nil;
  
   if LibHandle = 0 then
   begin
      ShowMessage('Kütüphane zaten uçuşa geçmiş');
      Exit;
   end;
  mydllproc(DLL_PROCESS_DETACH);
  LibHandle := 0;
  Action := caFree;
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

@delphist merhaba ,

benim problemim DLL içinde oluşuyor DLL kendisin yok ederken hatalar üretiyor. DLL yi dinamik yüklersem FreeLibrary de soruno luyor am statik yüklersem DLL yi kullandıktan 3 sn sonra hata oluşuyor.
ilgin için teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Hocam dediğin aynı şey bendede oluşuyor zaten direk hata verdiği zaman kapanışta pointer hatası veriyor program çalışırken bir süre sonra verdiği
to many concesutive mi seninkiyle aynı.....Bilgin olmasını istedim bendede böyle bir olay yaparken bu olmuştu...Bende böyle yapınca düzeldi...
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

evet belirttiğin gibi düzenlemeri yaptım ama sonuç yok :(
teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

sharemem i uses da ilk unit yaparak denediniz mi?
DeveloperToolKit

..::|YeşilMavi|::..
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,
shamem unitin hem DLL de hemde app de en başa aldım , şöyle bir değişilik oldu dinamik yüklediğimde Freelibrary(); de bir sıkıntı çııkmadı ama APP yi kapatırken Invalid Pointer Operation hatası aldım statik yüklemede birdeğişliklik olmadı.,
şöyle saçma bir durum daha var , test projemde ilgili DLL yi dinamik yükleyerek çalıştırdığım procedureyi çalıştırmasamda APP yi kapatırken aynı hatayı alıyorum debugger CLASSES unit içinde bir satıra konumlanıyor.
kısacası programı açıp kaptmam yeterli oluyor hata almak için. bence sharemem nedn oluyor bunlara nasıl engelleriz acaba.
teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

:) @vkamadan anlıyorum halini kardeş...Sharemem unitini kaldırdığın zaman hata vermemesi lazım zaten büyük bir ihtimalle...
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

@delphist merhaba,
string yada herhangi başka dizi döndüren yada parametre alan DLL lerde mutlaka sharemem kullanılması gerekiyor, kullanmadığımda zaten fonksiyonlar hiç sonuç döndürmeden hata üretiyor. şimdi sonucu alıyor free ederken hatayı alıyorum.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

arkadaşlar merhaba ,
sonunda sorunlarımı çözen aşağıdaki uniti buldum. borlandın sharemem unitinin fix edilmiş ve geliştirilmiş bir hali. ilgilenen arkadaşlara teşekkürler.
http://www.codexterity.com/fastsharemem.htm
Volkan KAMADAN
www.polisoft.com.tr
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Sorunun çözüldüğüne sevindim. :D
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

Hocam Bende çok sevindim valla iyi tırmaladın...Ama sonuç belli...Kolay Gelsin
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

FastSharemem has also been reported to fix unsolved "Invalid Pointer Operation" or Runtime Errors with Sharemem/Borlndmm.dll. If you're using Sharemem properly and still getting these errors, then you might want to try FastSharemem.
Demek ki böyle bir problem varmış. Öğrenmiş olduk nedenini.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

ilave olarak ,
bu fastsharemem uniti Borlndmm.dll yada başka bir dosyasınada ihtiyaç duymuyor.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
BLuE_ALoNE
Üye
Mesajlar: 47
Kayıt: 26 Eki 2006 08:30

delphi 5 de HTTPRIO componenti yok

Mesaj gönderen BLuE_ALoNE »

delphi 5 de böyle bir component olmadığı için büyük ihtimal bu hatayı veriyordur.
Cevapla