Thema: Delphi Variante Records?

Einzelnen Beitrag anzeigen

Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#3

Re: Variante Records?

  Alt 21. Mär 2009, 14:46
Zitat von Zacherl:
Hey,

ich schreibe grade an einer Unit, mit der man PE Dateien bearbeiten kann. Nun muss ich zwischen 32 und 64 Bit Header differenzieren. Es ändert sich nur die Größe von 4 Feldern. Bei 32 Bit sind diese vom Typ DWord und bei 64 Bit vom Typ Int64.

Möchte jetzt innerhalb meiner Methoden nicht immer zwischen 32 und 64 Bit unterscheiden müssen. Gibt es eine Methode, mit der ich den Typ des Records zur Laufzeit festlegen kann?

Gruß Zacherl
Hallo,

der Compiler verwendet die Offsets innerhalb des Records wie Konstanten, sie werden fest in das Compilat eingebaut. Das gilt auch für variante Teile des Records, die stehen am gleichen Offset, und es wird der Platz der grössten Variante reserviert, d.h. der Record und alle Offsets sind immer gleich - genau das ist ja bei deinen Records nicht der Fall.

Eine Möglichkeit: du arbeitest intern ausschliesslich mit der 64bit-Variante und wandelst 32bit-Records schon beim Lesen um.

Gruss Reinhard
  Mit Zitat antworten Zitat