Delphide yazdığım DLL'i Visual Basic'de kullanma HK.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ieski
Üye
Mesajlar: 20
Kayıt: 09 Tem 2003 08:19

Delphide yazdığım DLL'i Visual Basic'de kullanma HK.

Mesaj gönderen ieski »

S.A.
Arkadaşlar Delphide YTL diye bir DLL oluşturdum ama bir türlü VB'de kullanamadım durmdana hata verdi.

Şunu merak ettim Delphide yazdığımız DLL'i Visual Basic'te kullanamazmıyım
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

a.s.
geriye dönderdiğiniz verinin tipi nedir. tipten kaynaklanana bir sıkıntı olabiir.
birde verdği hata mesajı nedir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
ieski
Üye
Mesajlar: 20
Kayıt: 09 Tem 2003 08:19

Mesaj gönderen ieski »

geriye döndürdüğüm değer string

hata mesajı alamıyorum direk proğram kapanıyor...
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
Eğer tasarladığınız DLL başka programlama dillerinden çağrılacaksa, öncelikle ihraç edeceğiniz metodların sonuna stdcall ifadesi eklemelisiniz ,ve kesinlikle String gibi delphiye özel veri tiplerini kullanmamalısınız, onun yerine PChar kullanmalısınız.
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Örnek

Mesaj gönderen sabanakman »

Kod: Tümünü seç

function DllFunc(Liste:PChar;var Boyu:DWord):Integer;stdcall;
var S:String; i:Integer;
begin
  try
    Result:=0;
    
    S:='STRİNG DEĞER';//<--<<--<--<<--
    i:=Length(S);
    if Boyu>i then Boyu:=i+1 else S:=Copy(S,1,i-1);
    StrCopy(Liste,PChar(S));
    Result:=1;
  except
    Result:=-1;
  end;
end;
bu örnek dll fonksiyonu aynı getcomputername api fonksiyonu yapısındadır. Delphi tarafından kullanımına örnek verilirse ...

Kod: Tümünü seç

var Dizi:Char[1..255]of Char; n:DWORD;
begin
  n:=SizeOf(Dizi);
  DllFunc(@Dizi,n);
  ShowMessage(Dizi);
//////////////////////////////////
  n:=SizeOf(Dizi);
  GetComputerName(@Dizi,n);
  ShowMessage(Dizi);
end;
şeklindedir. Eğer Visual Basic içinden GetComputerName API fonksiyonunu kullanabiliyorsan bu şekilde yazılan fonksiyonda çalışacaktır çünkü yapıları tamamen aynıdır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
ieski
Üye
Mesajlar: 20
Kayıt: 09 Tem 2003 08:19

Mesaj gönderen ieski »

teşekkür ederim.
Cevapla