udf Load, FreeLibrary, Malloc

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

udf Load, FreeLibrary, Malloc

Mesaj gönderen ikra »

Selamu aleykum

bir kac sorum olacak.

1) Arkadaslar UDF'i server ne zaman load eder ve zaman freelibrary komutunu cagirir?
2) UDF'ler birden cok Client kullaniminda IsMultiThread komutu kullanildigi halde ayni bellek adresi catismasi yasayabilir mi?
2) malloc ile string valueler icin bellekte rezerve ettigim alani value geri döndükten hemen sonra nasil free edebilirim? ki, bellekte bosluklar kalmasin!
3) stringler haricinde diger veri tipleri icinde malloc kullanmak gerekir mi?
4) UDF deklare ederken BY VALUE ve BY REFERENCE arasindaki fark ne dir?

Tesekkür ederim...
kıdemsiz üye
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: udf Load, FreeLibrary, Malloc

Mesaj gönderen mkysoft »

UDF kullanmadım ama 3. ve 4. Soruları C açısından cevaplamaya çalışayım. Malloc veya alloc ile pointer olarak ifade ettiğiniz değişkenler için bellekte yer açarsınız. Tüm diziler pointerdir. Stringler de dizi olduğuna göre bellek tahsisi yapıyoruz. Bir fonksiyon içinde bellek tahsisi yapmışsaniz ve bu bellek adresini pointer olarak geri döndürmüşseniz fonksiyonun atandığı değişken free edildiğinde bu bellekte yok olacaktır. Diğer değişkenler için derleyici otomatik tahsis kodları ekler.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: udf Load, FreeLibrary, Malloc

Mesaj gönderen ikra »

Hocam ellerine saglik. Cok guzel anlatmissin.
Ben bir udf yazdim. Blob, integer, pchar, double, date vesaire result olarak döndürüyor. Internette okudugum bir makaleye gire udf kullaniminda planlama ve bellek yapisina cok dikkat etmek gerekiyormus. Aksi taktirde es zamanli cagirilan udf'lerin bellek cakismasi yada bellekte boslukla olusturmasi muhtemelmis. Bu tur bilgileri vermis makalede fakat cozum adina hic bir bilgi sunmamis. Ozellikle by value ve by reference kullanimina dikkat cekmis. Ne istedigini bilmelisin yazmis.
Bunlarin aciklamasi olmadigi icin, hangi yolun beni hedefe ulastiracagi konusunda ikilemde kaliyorum.
Yazdigim udf calistigi halde, ileride beklenmedik bir sorun cikartir dusuncesinden dolayi su an kullanamiyorum.
kıdemsiz üye
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: udf Load, FreeLibrary, Malloc

Mesaj gönderen ikra »

Arti bir soru:
interbase udf'leri multithread olarak kullaniyorsa, global tanimlanmis degiskenleri kullanan fonksyonlari thread guvenli yapmak gerekir mi? criticalsection kullanmalimiyiz?
kıdemsiz üye
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: udf Load, FreeLibrary, Malloc

Mesaj gönderen mkysoft »

by reference pointer olarak kullanmayı kastediyor. Multithread olarak kullanıyordur büyük ihtimal, en azından ayrı kullanıcı için yeniden açıyordur. Siz yinede önleminizi alın. Global sabitler dışında değişken kullanmayın. Fonksiyonlarınızın değişkenlerini pointer olarak tasarlayın. Bellek tasarrufu edersiniz. By value olarak değer döndürmekten kaçının. Bazı durumlarda kaçış olmayabiliyor tabi.
Cevapla