Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Korrekte Struct Übersetzung (https://www.delphipraxis.net/159412-korrekte-struct-uebersetzung.html)

schwa226 26. Mär 2011 21:12

Korrekte Struct Übersetzung
 
Hallo!

Ich habe mit HeaderConvert versucht eine C++ Struct für Delphi zu übersetzen.
Die schaut mich aber nicht korrekt an:

Code:
#define VDATA_MAX_TIME   15
#define VDATA_MAX_COUNT 7
#define VDATA_MAX_DATA 4

typedef struct s_VData
{
  unsigned length;
  BYTE TS;
  BYTE T0;
  struct
  {
    BYTE value;
    bool present;
  }
  ib[VDATA_MAX_COUNT][VDATA_MAX_DATA], TCK;
  unsigned pn;
  BYTE hb[VDATA_MAX_TIME];
  unsigned hbn;
}
VDATA;
Ergebnis:
Delphi-Quellcode:
type
  s_VData = record
    length: Word;
    TS: BYTE;
    T0: BYTE;
        value: BYTE;
    present: Bool;
  end {s_VData};
Da fehlt aber das mehrdimensionale Array ib.

Kann das jemand korrekt übersetzen?

Christian Seehase 26. Mär 2011 22:34

AW: Korrekte Struct Übersetzung
 
Moin,

ich würd's so machen:

Delphi-Quellcode:
const
  VDATA_MAX_TIME = 15;
  VDATA_MAX_COUNT = 7;
  VDATA_MAX_DATA = 4;

type
  _s_VData = record
    Value  : Byte;
    present : BOOL;
  end;

  s_VData = record
    Length : DWORD;
    TS     : Byte;
    T0      : Byte;
    ib     : array [0..VDATA_MAX_COUNT-1,0..VDATA_MAX_DATA-1] of _s_VData;
    TCK    : _s_VData;
    pn     : DWORD;
    hb     : array [0..VDATA_MAX_TIME-1] of BYTE;
    hbn    : DWORD;
  end;

  VDATA = s_VData;

schwa226 27. Mär 2011 13:38

AW: Korrekte Struct Übersetzung
 
Danke erstmal!

Werde es beim Übersetzen der C++ .c Source dann sehen ob es geht.

schwa226 28. Mär 2011 08:05

AW: Korrekte Struct Übersetzung
 
Passt zu 100%!

Danke vielmals!


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz