Sorry ich bezog mich auf dieses theoretisch beschrieben Struct:
Zitat:
Ich habe eben festgestellt, dass bei einem MethodenAufruf eine C-Struktur 58 Byte groß ist und die dazugehörige Delphi-Struktur nur 56 Byte.
Die Struktur besteht aus :
Byte-Array (26 Bytes)
Byte-Array (21 Bytes)
Word ( 2 Bytes)
Byte ( 1 Byte )
Word ( 2 Bytes)
Word ( 2 Bytes)
Word ( 2 Bytes)
In Delphi habe ich ein Packed Record draus gemacht, aber in C wir die Direktive
#pragma pack( push, safe_old_packing, 4 )
verwendet.
Hier ist der C-Quellcode
Code:
typedef struct {
UINT8 deviceType [MAX_DEVICE_TYPE_LENGTH + 1];
UINT8 orderId [MAX_ORDER_ID_LENGTH + 1];
UINT16 hwRevision;
UINT8 swRevisionPrefix;
UINT16 swRevision1;
UINT16 swRevision2;
UINT16 swRevision3;
} ATTR_PACKED ANNOTATION;
und hier ist mein Delphi-Code dazu:
Delphi-Quellcode:
TAnnotation =
packed record
deviceType : array[0..MAX_DEVICE_TYPE_LENGTH] of UINT8;
orderId : array[0..MAX_ORDER_ID_LENGTH] of UINT8;
hwRevision : UINT16;
swRevisionPrefix : UINT8;
swRevision1 : UINT16;
swRevision2 : UINT16;
swRevision3 : UINT16;
end;
Wie oben gesagt, hatte ich schon mit dem alignment "gespielt", aber bin zu keinem Ergebnis gekommen... nur nen Haufen Schutzverletzungen
Die Welt wäre langweilig, wenn es keine Probleme gäbe...