Moin moin,
Zitat von
mOfl:
...Zusätzlich zur allgemeinen Frage also noch die Frage: Wie sieht der äußert raffinierte Befehl rückwärts aus, also von Integer zu Byte-Array oder viel primitiver gefragt - geht das
überhaupt so einfach?...
Ja, es geht genau so einfach:
Delphi-Quellcode:
//..
groesse := 439041101;
PInteger(@buffer[0])^ := groesse;
//..
Ein Integer "besteht" ja aus 4 Bytes (SizeOf(Integer) = 4), es ist also - aus sicht des PCs - das gleiche wie ein Array[0..3] of Byte.
Ein PInteger zeigt auf das erste Byte von den 4 Bytes eines Integers. @buffer[0] zeigt ebenfalls auf das erste Byte unseres Arrays.
Wenn wir jetzt dem Compiler mitteilen, das @buffer[0] ein PInteger ist, können wir diesen ganz einfach dereferenzieren und einen Wert
zuweisen.
Was ich bei dir nur nicht verstehe, warum musst du überhaupt den Weg über ein Array[0..3] of Byte gehen? Du kannst die Werte doch direkt in einen
Integer einlesen?