Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?

  Alt 6. Mai 2017, 20:17
Ich bin heute auf Wolfgang Ehrhardts CRC- und Hash-Routinen gestoßen. Die sollen wohl wahnsinnig schnell sein, weswegen ich mich dafür interessiere.

Wieso findet der Compiler die Unit nicht?

Ein Beispielprojekt mit allen benötigten Units befindet sich im Anhang. Bekommt ihr das Projekt kompiliert?

Link zu Wolfgang Ehrhardts Units: http://www.wolfgang-ehrhardt.de/crchash_de.html
Das Problem liegt darin, daß Delphi ab XE8 eine eigene Hash-Unit hat, und durch nichts zu überzeugen ist, daß es die Unit im Arbeitsverzeichnis oder entsprechend der Uses-Liste verwendet soll. Ist bekannt, siehe hier http://www.delphipraxis.net/190245-u...nd-hash-2.html und http://www.delphipraxis.net/184810-x...stem-hash.html. Aber selbst dann kann man deinen Code nicht übersetzen (zB mit D18) weil er einige Fehler hat. Eine korrigierte Funktion sieht so aus
Delphi-Quellcode:
function SHA1Text(const s: string): string;
var
 Context: THashContext;
 SHA256Digest: Hash.TSHA256Digest;
begin
 SHA256.SHA256Init(Context);
 SHA256.SHA256Update(Context, pChar(s), length(s));
 SHA256.SHA256Final(Context, SHA256Digest);
 Result := Mem_Util.HexStr(@SHA256Digest, SizeOf(SHA256Digest));
end;
und sollte dann sinnvollerweise SHA256Text heißen. Ich kann selbst dann nicht übersetzen, weil die res-Datei fehlt.

Gruß Gammatester
  Mit Zitat antworten Zitat