Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bin heute auf Wolfgang Ehrhardts CRC- und Hash-Routinen gestoßen. Die sollen wohl wahnsinnig schnell sein, weswegen ich mich dafür interessiere.
Ich habe aber ein seltsames Problem, wenn ich mir die Units die ich brauche ins Projekt hinzufüge und kompilieren möchte. Der Compiler meckert, dass der Bezeichner THashContext nicht deklariert sei. Wenn ich aber STRG+Linkklick drauf mache, lande ich in der Unit Hash.pas. 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 |
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Zitat:
Delphi-Quellcode:
und sollte dann sinnvollerweise SHA256Text heißen. Ich kann selbst dann nicht übersetzen, weil die res-Datei fehlt.
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; Gruß Gammatester |
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Heißt das also die einzige Lösung besteht darin, dass ich die Unit Hash von Wolfgang E. umbenennen muss?
Zitat:
Zitat:
Ich kann die aus meinem Projektverzeichnis löschen und nicht kompilieren (siehe Fehler erster Post). Aber auch wenn sie vorhanden ist kann ich nicht kompilieren. |
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Zitat:
|
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Wenn ich hash.pas in W.E.Hash.pas umbenenne, komme ich bereits weiter.
Wo man dann aber stecken bleibt ist in Mem_Util.Base64DecStr in Block
Delphi-Quellcode:
Wenn man das auskommentiert (ebenfalls in anderen Funktionen wo es diese Re-Deklaration gibt) kommt man weiter und es kompiliert.
function Base64DecStr({$IFDEF CONST}const {$ENDIF} es: BString): BString;
var {$IFNDEF RESULT} result: BString; {$ENDIF} ... // Funktioniert mit XE2 problemlos. Ab XE8 nicht mehr. Result: BString ist hier meiner laienhaftung Meinung doch gar nicht notwendig, da der Funktionsrückgabewert doch eh schon BString ist. Resultat dieses kleinen Ausritts ist dann ein SHA256-Hash, der nicht mit dem übereinstimmt was andere Hasher sagen. Es gibt vermutlich also noch weitere Probleme nur fraglich wo. Wenn ich diese Library zum problemlosen Funktionieren bekomme, wird es definitiv meine erste Wahl vor allen anderen :thumb: |
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Zitat:
Wenn man was auskommentiert? Und welche Re-Deklaration? BString ist ein String[255], also kein String (bei die wohl bei dir ein Unicode-String ist). Außerdem ist er statisch und nicht dynamisch (Strings in XE8 sind dynamisch). Wenn du dynamische Strings brauchst, sieh mal in Unit base2n.pas für ansistrings. |
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Wenn man folgendes auskommentiert
Delphi-Quellcode:
Weil der Funktionsrückgabewert ist ja eh schon BString
{$IFNDEF RESULT}
result: BString; {$ENDIF}
Delphi-Quellcode:
function Base64DecStr({$IFDEF CONST}const {$ENDIF} es: BString): BString;
Nur dann funktioniert es. Aktuell versuche ich mit Tokyo Starter zu kompilieren. |
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Zitat:
|
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Wie gesagt. Ich teste es mit XE8 Pro und Tokyo Starter und es tritt bei beiden auf.
Tritt nur bei Tokyo auf. Der Hash ist bei XE8 aber trotzdem nicht korrekt. |
AW: Wolfgang Ehrhardts CRC/Hash Routinen - kompilieren schlägt fehl - IDE-Bug?
Zitat:
PS: Warum hast du eigentlich so viele Änderungen am Code vorgenommen (zB 124 bei sha256)? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz