DLL içinden Dinamik dizi döndüren fonksiyon çağırmak...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
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.
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
www.polisoft.com.tr
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
Mdi mainin on close da şöyle
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

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;
@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.
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
www.polisoft.com.tr
evet belirttiğin gibi düzenlemeri yaptım ama sonuç yok 
teşekkürler.

teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
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.
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
www.polisoft.com.tr
@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.
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
www.polisoft.com.tr
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
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
www.polisoft.com.tr
ilave olarak ,
bu fastsharemem uniti Borlndmm.dll yada başka bir dosyasınada ihtiyaç duymuyor.
iyi çalışmalar.
bu fastsharemem uniti Borlndmm.dll yada başka bir dosyasınada ihtiyaç duymuyor.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
-
- Üye
- Mesajlar: 47
- Kayıt: 26 Eki 2006 08:30
delphi 5 de HTTPRIO componenti yok
delphi 5 de böyle bir component olmadığı için büyük ihtimal bu hatayı veriyordur.