dll parametresi olarak nesneler

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tux
Üye
Mesajlar: 22
Kayıt: 01 Nis 2008 03:24

dll parametresi olarak nesneler

Mesaj gönderen tux »

selam arkadaşlar,

delphi ile dll oluştururken basit bir yerde takıldım içinden çıkamıyorum uygulamamda herşey yolunda
üzerinde basit bir query, datasource ve dbgrid olan bir dll form oluşturdum ve halihazırda bağlantı kurulu olan
ibdatabase ve transaction nesnemi dll'e parametre olarak (gönderiyorum ve kullanıyorum)
ancak gözden kaçırdığım bir nokta var sanırım uygulamayı kapatırken access violation hatası veriyor
hafızadan atılmayan bişey var gibi geliyor veya uyguladığım yöntemde bir yanlışlık var,
çağırma ve kullanım kodlarım aşağıda bakarsanız sevinirim

EXE
----------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
DLLHandle : THandle;
DLLForm : procedure(Con:TIBDatabase; Trn:TIBTransaction);
begin
DLLHandle := LoadLibrary('deneme.dll');
if DLLHandle <> 0 then
try
DLLForm := GetProcAddress(DLLHandle,'myform');
DLLForm(IBDatabase1,IBTransaction1);
finally
FreeLibrary(DLLHandle);
end;
end;


DLL
-----------------------------
procedure myform(CN:TIBDatabase; TR:TIBTransaction);
begin
Application.CreateForm(Tformum,formum);
try
with formum do begin
IBQuery1.Database := CN;
IBQuery1.Transaction := TR;
IBQuery1.Open;
ShowModal;
end;
finally
FreeAndNil(formum);
end;
end;
En son tux tarafından 22 Şub 2011 11:13 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
tux
Üye
Mesajlar: 22
Kayıt: 01 Nis 2008 03:24

Re: dll parametresi olarak nesneler

Mesaj gönderen tux »

her iki projeyede sharemem unitini ekledim düzeldi, soru mükerrer ise konu kapatılabilir moderatör arkadaşlarım kusuruma bakmasınlar
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: dll parametresi olarak nesneler

Mesaj gönderen ikra »

sorun cözülmüs olsada, gözüme takilan bir nokta oldu, o nedenle paylasmak istedim.
parametre olarak application gönder. variable üzerine at.
formu create edecek olan application ile, ana formunun applicationu bir olur.
finalization kisminda da, orjinal application'u variableden geri yükle.
hata vermemesi gerekir.
kıdemsiz üye
Kullanıcı avatarı
tux
Üye
Mesajlar: 22
Kayıt: 01 Nis 2008 03:24

Re: dll parametresi olarak nesneler

Mesaj gönderen tux »

açıklayıcı bilgi veren cevabın için teşekkür ederim, formu "nil" yani sahipsiz oluşturuyorum
sorunsuz çalışıyor fakat bu tabiki doğru yöntem değil.. söylediğin gibi application nesnesinide göndermekte
fayda var doğru bellek yönetimi açısından :)
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: dll parametresi olarak nesneler

Mesaj gönderen vkamadan »

İlave olarak ShareMem yerine FastShareMem kullanmanızı öneririm çok daha başarılı ve yanında SahreMem için gereken DLL i dağıtmanıza gerek yok, hem DLL hemde yükleyen uygulamada uses kısımlarında ilk unit olmalı.
Google dan arama yaparak hemen temin edebilirsiniz ücretsizdir.
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla