Dll içerisindeki Stringlist'i çağırmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Dll içerisindeki Stringlist'i çağırmak

Mesaj gönderen feinpus »

oluşturduğum bir dll dosyası içerisinde şöyle bir fonksiyon hazırladım.

Kod: Tümünü seç

function fonksiyonlar:TStringList;stdcall;
begin
fonksiyonlar := TStringList.Create;
fonksiyonlar.Clear;
fonksiyonlar.Append('ASD');
fonksiyonlar.Append('ASD234');
end;
//Amacım dll içerisinde bir stringlist oluşturarak harici biryerden bu listeye ulaşmak.

daha sonra hazırladım programda bu listeyi açmaya çalışıyorum fakat hata veriyor. Bu işe daha önce kafa patlatmış birisi varsa bi el atsın yaws.

------
Benim asıl amacım hazırladığım dll'nin içerisindeki function listesini almak ama bunu alamadığım için bende dll içindeki function ları bir stringliste koyup oradan okumaktı ama buda olmadı.

bu iş için başka önerilerede açığım yeter ki functionlistesini alabileyim...
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

TStringList tipinde bir nesne export etmek yerine
Index i parametre verip sadece string export edin...

yani

Kod: Tümünü seç

function fonksiyonlar(Index:Integer):String;stdcall;
begin
  result:= sl.Strings[Index];
end; 
yada

Kod: Tümünü seç

function fonksiyonlar(Index:Integer):String;stdcall;
begin
  case Index of
    1:result:='1.stringim';  
    2:result:='2.stringim';  
    3:result:='3.stringim';  
    4:result:='4.stringim';  
   else
      result:='olmayan string;  
   end;
end;
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

olmadı "access violation" hatası verdi.
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

yaw olmaz tabi ben ornekte sl StringListi create etmedim bisey etmedim
oldugu gibi kullan demedim ki kodu...
ayrıca hangi yontemi denedin de olmadı?????
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

2. denedim ama olmadı ayrıca bir şey daha keşfettim.

Dll içerisinden integer bir ifade almakta problem yok ama string alamıyorum.
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

dll i delphi harici bir dilden kullanacaksan c standartlarına uygun parametre export etmelisin
yani cıkıs degerini PChar olarak tanımlamalısın, function icinde string pchar donusumu yaptırman gerek
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

delphi haricinde bi işim yok ama saol. Şimdi bu string aldırmaktan vaz geçtim.

Ama kafama yine bi dll sorusu takıldı.

dll içerisinden nesne oluşturmak istiyorum. Mesela bu dll'i açan yine benim yaptığım bir program içerisinde ana formda bir nesne olultursun. fakat her seferinde bu programı compile etmek istemiyorum fakat dll içerisindeki nesne tipleri değişe bilir.

Örneğin ilk olarak menu oluştururum. Sonra bu dll içerisine birde button oluşturması için bşr function eklerim.

Şimdi sorunum ortada oluışturulacak bir form yokken ben açan programın anaformuna bu nesneyi nasıl oluşturtabilirim.
Oldeye Software
http://www.oldeye.com
Cevapla