Frage zu CRC32Fingerprint PB x64
Verfasst: 24.11.2009 18:28
Ich habe heute mal ein kleines Projekt von 32 Bit nach 64 Bit angepasst und dabei ist mir aufgefallen, dass ich unter 64 Bit beim CRC32Fingerprint() zum Teil ein anderes Ergebnis bekomme wie unter 32 Bit weshalb meine vergleiche ob der CRC stimmt nicht mehr funktionierten. Da ich mich jetzt damit nicht ganz so gut auskenne, wollte ich jetzt mal wissen ob das einen bestimmten Grund hat, dass ich unter 64 Bit was anderes zurück bekomme wie unter 32 Bit. Ich dachte ein CRC32 ist immer 32 Bit also 4 Byte und damit ein Long wieso konvertieren dann Debug und die direkte Übergabe an einen Quad das nicht genauso wie wenn ich einen Long zum Quad mache?
mfg Christian+
Code: Alles auswählen
*Buffer = AllocateMemory(1000)
If *Buffer
PokeS(*Buffer, "The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.")
Length = MemoryStringLength(*Buffer)
CRC1.l = CRC32Fingerprint(*Buffer, Length)
Debug CRC1 ;-1696003417
CRC2.q = CRC1
Debug CRC2 ;-1696003417
CRC3.q = CRC32Fingerprint(*Buffer, Length)
Debug CRC3 ;2598963879
Debug CRC32Fingerprint(*Buffer, Length) ;2598963879
If CRC1=CRC32Fingerprint(*Buffer, Length)
Debug "OK"
EndIf
FreeMemory(*Buffer)
EndIf