Einzelnen Beitrag anzeigen

Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#1

DEC 5.2 erzeug auf einmal einen Integer überlauf

  Alt 22. Sep 2014, 15:05
Delphi-Version: XE3
Moin DP'ler

folgender Code hat bis heute funktioniert. Nachdem ich heute das Programm neu erzeugt hab erzeugt mir DEC 5.2 einen Integerüberlauf (DECCipher.pas Zeile: 1645):

Delphi-Quellcode:
function EncodeString(const Text: String): string;
begin
  with TCipher_Twofish.Create do
    try
      Init('zufallsstring');
      Result := EncodeBinary(Text, TFormat_Copy); // verschlüsselt Strings
    finally
      Free;
    end;
end;

function String2Hex(const Buffer: Ansistring): string;
begin
  SetLength(Result, 2 * Length(Buffer));
  BinToHex(@Buffer[1], PWideChar(@Result[1]), Length(Buffer));
end;

function getsavestring(input: string): string;
begin
  Result := String2Hex(EncodeString(input));
end;

procedure TForm1.FormCreate(Sender: TObject);
var
regist: TRegistry;
iniid, regid: string;
begin
regist := TRegistry.Create;
    try
      regist.RootKey := HKEY_CURRENT_USER;
      regist.OpenKey('Software\pfad\zum\key', false);
      regid := getsavestring(regist.ReadString('ID'));
      regist.CloseKey;
      regist.OpenKey('Software\pfad\zum\anderen-key', false);
      iniid := getsavestring(regist.ReadString('ID'));
      regist.CloseKey;
    finally
      regist.Free;
    end;
end;
Wie ihr sehen könnt hab ich das ganze in ein extra Projekt nochmal kopiert um zu testen obs dann geht und siehe da es funktioniert.
Jetzt frag ich mich woran kann das liegen das es in meinem anderen großen Projekt nicht geht.
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat