Zitat von
wido:
Wir müssen also die Bytes von LPARAM nach Links verschieben. Dazu gibt es den Befehl shl (shift left = "Verschiebe nach Links"). Der Befehl "shl 32" bewirkt also, daß der Wert um 32 Bits (oder 4 Bytes) nach links verschoben wird. Nur wenn Du den Wert shiftest, macht die Addition auch das, was Du wirklich erreichen willst.
Es ist zwar nicht falsch, was du schreibt, aber mein Vorschlag aus dem Posting davor ist besser.
Man nimmt einfach die beiden 32 Bit Werte und kopiert sie in einen
varianten Record (unter C würde man das als Union bezeichen).
Dann kann man die Daten als 64 Bit Wert auslesen.
Das funktioniert 100%ig während man bei Shiften in int64 immer aufpassen muss, dass die oberen 32 Bit nicht abhanden kommen.
Der Compiler ist bei int64 Operationen manchmal etwas zickig und tut nicht immer das, was man erwarten würde.