c++ kodunu delphi'ye dönüştürme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Master43
Üye
Mesajlar: 73
Kayıt: 17 Ara 2004 12:05

c++ kodunu delphi'ye dönüştürme

Mesaj gönderen Master43 »

s.a.
Arkadaşlar aşağıdaki c++ kodlarını delphiye dönüştürmede sorun yaşıyorum.
(Dll içinden export ediliyor)

Kod: Tümünü seç

  int WINAPI OpenModbusSerial(char *comport_name, int baud_rate, int data_len, char parity, int stop_bits, int modbus_mode);
  int WINAPI RequestData(int slave_addr, int func_code, const unsigned char *data, int datalen);
  int WINAPI ResponseData(int *slave_addr, int *func_code, unsigned char *data);
Ben şu şekilde dönüştürmeye çalıştım

Kod: Tümünü seç

  Function OpenModbusSerial(const buf: String; baud_rate: Integer; data_len: Integer; parity: Char; stop_bits: Integer; modbus_mode: Integer): Integer; stdcall;
  Function RequestData(slave_addr: Longint; func_code: Longint; const buf: String; DataLen: Longint): Longint; stdcall;
  Function ResponseData (var slave_addr: Longint; var func_code: Longint; var buf: String): Longint; stdcall;
Ancak ResponseData fonksiyonunda genelde Access violation hatası alıyorum.
Şimdiden teşekkürler.
Kullanıcı avatarı
turkerunutmaz
Üye
Mesajlar: 57
Kayıt: 04 Oca 2008 04:53
Konum: İstanbul
İletişim:

Re: c++ kodunu delphi'ye dönüştürme

Mesaj gönderen turkerunutmaz »

Merhaba.
C++ kodunda

Kod: Tümünü seç

int WINAPI ResponseData(int *slave_addr, int *func_code, unsigned char *data);
Delphi

Kod: Tümünü seç

  Function ResponseData (var slave_addr: Longint; var func_code: Longint; var buf: String): Longint; stdcall;
Hocam bilmiyorum ama sizin kullandığınız argümanda buf stringi var. Ama yukarda unsigned char kullanılmış ve ismi data. Burdan olabilirmi?
Master43
Üye
Mesajlar: 73
Kayıt: 17 Ara 2004 12:05

Re: c++ kodunu delphi'ye dönüştürme

Mesaj gönderen Master43 »

ilginize teşekkür ederim öncelikle,

buf parametresini data ile değiştirdim değişen bişi yok. benim takıldığım nokta

1) "unsigned char" delphide ne oluyor (ben string yazdım bilemiyorum doğrumudur - RequestData fonksiyonunda sorun çıkarmıyor)
2) paramatlerin başına yazdığım "var" ve "const" doğrumudur bilemiyorum.

c ile biraz olsun ilgilenen arkadaşlar için çok kolaydır eminim.
Kullanıcı avatarı
turkerunutmaz
Üye
Mesajlar: 57
Kayıt: 04 Oca 2008 04:53
Konum: İstanbul
İletişim:

Re: c++ kodunu delphi'ye dönüştürme

Mesaj gönderen turkerunutmaz »

Hocam unsigned char yerine string değil de char yaz. bir öyle dene. const ları silip dene bir de.
Master43
Üye
Mesajlar: 73
Kayıt: 17 Ara 2004 12:05

Re: c++ kodunu delphi'ye dönüştürme

Mesaj gönderen Master43 »

Bunlarda VB kodları

Kod: Tümünü seç

Declare Function OpenModbusSerial Lib "DMT.dll" (ByRef buf As Byte, ByVal baud_rate As Long, ByVal data_len As Long, ByVal parity As Byte, ByVal stop_bits As Long, ByVal modbus_mode As Long) As Long

Declare Function RequestData Lib "DMT.dll" (ByVal slave_addr As Long, ByVal func_code As Long, ByRef buf As Byte, ByVal DataLen As Long) As Long

Declare Function ResponseData Lib "DMT.dll" (ByRef slave_addr As Long, ByRef func_code As Long, ByRef buf As Byte) As Long
OpenModbusSerial ve RequestData fonksiyonlarını yukarıda yazdığım haliyle çalıştırdım herhangi bi sorun yok benim sorunum ResponseData fonksiyonu ile.
Cevapla