Warum gibt CRC32Fingerprint eine Integer zurück, statt Long?
Verfasst: 07.11.2011 01:13
Tachchen,
da ich inzwischen auch an einem 64-Bit System testen kann, bin ich auf folgendes problem gestoßen:
CRC32Fingerprint gibt eine Integer zurück, statt einer Long.
In meinen eigenen Dateien speicher ich 32-Bit Fingerabdrücke immer als LONG und lese sie auch als Long ein.
Wenn ich sie nun aber mit der Funktion unter 64Bit-Windows vergleiche, ist das Ergebnis immer positiv, nicht wie in 32-Bit, dass die Long ein Vorzeichen besitzt.
Das Problem ist also, dass er viele Datei als beschädigt einstuft.
da ich inzwischen auch an einem 64-Bit System testen kann, bin ich auf folgendes problem gestoßen:
CRC32Fingerprint gibt eine Integer zurück, statt einer Long.
In meinen eigenen Dateien speicher ich 32-Bit Fingerabdrücke immer als LONG und lese sie auch als Long ein.
Wenn ich sie nun aber mit der Funktion unter 64Bit-Windows vergleiche, ist das Ergebnis immer positiv, nicht wie in 32-Bit, dass die Long ein Vorzeichen besitzt.
Das Problem ist also, dass er viele Datei als beschädigt einstuft.
Code: Alles auswählen
Buffer = 1234
Debug CRC32Fingerprint(@Buffer, 4)
32-Bit hat geschrieben:-1441790254
Bleibt mir nun nichts anderes übrig als immer ein & $FFFFFFFF zu benutzen, damit unter 64Bit, das Vorzeichen vernichtet wird?64-Bit hat geschrieben:2853177042