Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

Re: CopyFileProgress: negativer Wert beim Kopieren

  Alt 28. Mär 2008, 05:24
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.
  Mit Zitat antworten Zitat