AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Struktur übersetzen von C nach Delphi

Ein Thema von Delphiuser1987 · begonnen am 29. Apr 2010 · letzter Beitrag vom 29. Apr 2010
Antwort Antwort
Delphiuser1987

Registriert seit: 29. Apr 2010
31 Beiträge
 
#1

Struktur übersetzen von C nach Delphi

  Alt 29. Apr 2010, 10:24
Hallo zusammen, ich bin Anfänger und arbeite seit 2 Wochen mit Delphi.
Ich muss die unten stehende Struktur von C nach Delphi übersetzen.
Ich hoffe mir kann jemand helfen, denn ich schaffe es nicht.
Ich habe die Komentare auf der rechten Seite drin gelassen.

Code:
typedef struct DPS_TASK_PARAMETERtag {

unsigned char bPlcMode;                                   /* PLC mode */
unsigned short usWatchdogTime;                            /* Host watchdog time */
unsigned char abReserved1[3];                             /* Do not modify */
unsigned short usIdentNumber;                             /* PROFIBUS Ident number (if set to */
                                                           /* zero, built-in Ident number will */
                                                           /* be used) */
unsigned char bBusAddr;                                   /* Bus address */
unsigned char abReserved2[1];                             /* Do not modify */
unsigned char bFlags;                                     /* Configuration flags */
                                                           /* Bit 0: Chk_Cfg telegram data will */
                                                           /* be accepted as valid config. */
                                                           /* Bit 1: Ignore hardware address */
                                                           /* switch, use bBusAddr instead */
                                                           /* Bit 2: Hold last output data when */
                                                           /* entering safe state */
                                                           /* Bit 4: Swap data of word modules */
unsigned char bDpv1C1BufLen;                              /* Length of DPV1 class 1 buffer */
                                                           /* (including 4 bytes DPV1 header) */
unsigned char bDpv1C2BufLen;                              /* Length of DPV1 class 2 buffer */
                                                           /* (including 4 bytes DPV1 header) */
unsigned char bMiscUserFlags;                             /* Misc. flags for user */
unsigned char bMiscTaskFlags;                             /* Misc. flags for task */
unsigned char bBufferLen;                                 /* Length of PARA_DIAG_BUFFER */

union {
struct {
unsigned char bType;                                      /* Type of module */
unsigned char bLen;                                       /* Length of module */
} MODULE[24];
struct {
unsigned char abExtDiagData[32];                          /* Extended diagnostic data */
unsigned char abReserved3[16];
} DIAG_DATA;
} BUFFER;
} DPS_TASK_PARAMETER;
Einen Anfang habe ich schon gemacht, komm aber nicht mehr weiter sobald "union" kommt


Delphi-Quellcode:
Type

DPS_TASK_PARAMETERtag=record

bPlcMode : byte;
usWatchdogTime : shortint;
abReserved1:array[1..3] of byte;
...
...
bBufferLen: byte

?????????????
????????????
wäre sehr dankbar für eine Hilfe

[edit=mkinzler]Quellcode-Tags eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Trigger2003

Registriert seit: 14. Jun 2006
36 Beiträge
 
Delphi 12 Athens
 
#2

Re: Struktur übersetzen von C nach Delphi

  Alt 29. Apr 2010, 11:12
Hallo,

such mal unter "variante Records" (nicht Delphi-Variants!), das sollte nach meinen sehr begrenzten C-Kenntnissen das Pendant zu unions sein...

[edit]
Übrigens: Ein unsigned short ist in Delphi ein "word", kein "shortint" (16Bit unsigned, nicht 8 signed).
[/edit]

Viel Erfolg
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#3

Re: Struktur übersetzen von C nach Delphi

  Alt 29. Apr 2010, 11:36
Mangels C-Kenntnissen würde ich sowas vermuten:
Delphi-Quellcode:
DPS_TASK_PARAMETER = packed record
  case Byte of
  0:( //BUFFER
    MODULE: packed array [0..23] of
      packed record
        bType: Byte;
        bLen: Byte;
      end;
  );
  1:( //DIAG_DATA
    abExtDiagData: packed array[0..31] of Byte;
    abReserved3: packed array[0..15] of Byte;
  );
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 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