Delphi 7 ve 2010 arasında compile problemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Delphi 7 ve 2010 arasında compile problemi

Mesaj gönderen adelphiforumz »

S.A.

Delphi 7 ile geliştirilmiş bir uygulamayı delphi 2010 ile derlediğimde program eğer dışarıdan bir dll kullanıyor ve dll dönüş değeri PChar ise data bozuk geliyor
Eğer dönüş değeri int yada longint olursa sorun olmuyor
Bozuk gelen karakterler ise çince gibi tuhaf karakterler içeriyor.

Dll tanımlama şeklim

Kod: Tümünü seç

unit	X_Dll;
interface
const
  XDLL_TANIM   = 'XXXX.dll';
  function Fnc1   (prm1:LongInt):LongInt; cdecl; External XDLL_TANIM name 'Fnc1'; // Dll içerisindeki orjinal hali
  function Fnc2   (Prm1:LongInt;Prm2:LongInt):PChar; cdecl; External XDLL_TANIM name 'Fnc2'; // Dll içerisindeki orjinal hali

Farklı şekilde deneme örneklerim
 // function Fnc1   (prm1:LongInt):LongInt; stdcall; External XDLL_TANIM name 'Fnc1';
 // function Fnc2   (Prm1:LongInt;Prm2:LongInt):PChar; stdcall; External XDLL_TANIM name 'Fnc2';

 // function Fnc2   (Prm1:LongInt;Prm2:LongInt):String; cdecl; External XDLL_TANIM name 'Fnc2';

 // function Fnc2   (Prm1:LongInt;Prm2:LongInt):String; stdcall; External XDLL_TANIM name 'Fnc2';
..
..
Dll'i diğer formdan kullanma şeklim

Kod: Tümünü seç

..
..
implementation
uses
  X_Dll,
 
Procedure....
..
..
Formun içerisinden Fonksiyonu kullanma şeklim

Kod: Tümünü seç

Procedure...
var
  iResult : LongInt;
  sResult : String;
  pResult := PChar;
begin
...
  iResult := Fnc1(1); // Sonuç Doğru çalışıyor

  sResult := Fnc2(1,2); // Sonuç Hatalı geliyor
  sResult := PChar(Fnc2(1,2)); // Sonuç Hatalı geliyor
  pResult := PChar(Fnc2(1,2)); // Sonuç Hatalı geliyor
Acaba neden olabileceği konusunda bir fikri olan varmıdır
Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Delphi 7 ve 2010 arasında compile problemi

Mesaj gönderen sabanakman »

Delphi 7'de PChar tanımlı tiplerinizi, Delphi 2010 da PAnsiChar olarak değiştirin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla