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