DLL ve Array

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: DLL ve Array

Mesaj gönderen SimaWB »

Birçok yöntemle bu istediğin yapılabilir. Benim ilk aklıma gelen; DLL'den TStringList tipinde veri döndürmek. Senin programda kullanacağın yazılar bu liste içinde olacak.
DLL'de şunun gibi birşeyler olmalı:

Kod: Tümünü seç

var s: String;
function KelimeleriGetir: PChar; stdcall;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.Add('Kopyala');
  sl.Add('Kes');
  sl.Add('Yapıştır');
  //...
  s := sl.Text;
  Result := PChar(s);
end;

exports
  KelimeleriGetir;
Bu şekilde hazırladığımız DLL'i TR.dll kabul edelim. Aynı şekilde, içinde İngilizce kelimelerin doldurulduğu bir stringlist ile Ingilizce için de yapılacak ve adı da EN.dll olsun.

Daha sonra programın içerisinde:

Kod: Tümünü seç

type
   TKelimeler = function(): PChar; stdcall;

var
  sl: TStringList;
  func: TKelimeler;
  DllHnd : cardinal;
  DllIsmi: string;
begin
  if (Türkçe Seçili ise) then
    DllIsmi := 'TR.dll'
  else
    DllIsmi := 'EN.dll';
  DllHnd := LoadLibrary(DllIsmi);
  if DllHnd <> 0 then
  begin
    @func := GetProcAddress(DllHnd, 'KelimeleriGetir') ;
    if Assigned(func) then
    begin
      sl := TStringList.Create;
      try
        sl.Text := func;
        //Bundan sonra kelimeleri istediğin gibi kullanabilirsin
        //sl[0] = Kopyala, sl[1] = Kes  vs.. 
      finally
        sl.Free;
      end;
    end;
    FreeLibrary(DllHnd) ;
  end;
There's no place like 127.0.0.1
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: DLL ve Array

Mesaj gönderen vkamadan »

trex994 yazdı:İşte bu...
denedim ve tam istediğim gibi çok tşkler :bravo:

Yanlız ben Delphi X3 kullanıyorum bu dll in boyutu 10mb çok ilginç =)

MErhaba ,
Muhtemelen DEBUG modda derliyorsunuz, RELASE modda derlerseniz boyut oldukça düşecektir.

İyi çalışmalar.
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:

Re: DLL ve Array

Mesaj gönderen vkamadan »

Merhaba ,
Varsayılanda sağ bölümde yer alan Ağaç görünümlü "Project Manager" program EXE adınızın altında yer alan "Build Configurations" altında koyu renklli işaretli olan modda derlenir, RELASE üzeine çift tıklayıp aktifleştirip derlediğinizde RELASE yani dağıtım modunda derlemiş olursunuz, eğer özellikle belirttiğiniz bir çıktı klasörü yoksa proje klasörünüzde RELASE klasörü olulacak ve exe yi oradan alacaksınız.

iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla