Cześć.
Kawałek kodu, który prezentuje ma za zadanie odszyfrować stringa za pomocą bibliotek DCrypt:
var
actualPass: string;
begin
keyStr:='inny_klucz'; //max długość klucza dla 3DES - 24 znaki
try
Cipher:= TDCP_3DES.Create(nil);
Cipher.InitStr(KeyStr,TDCP_sha1);
actualPass:=Cipher.DecryptString(actualPass);
Cipher.Burn;
Cipher.Free;
except
on EOutOfMemory do
begin
application.MessageBox('Zbyt mało dostępnej pamięci, aby odszyfrować hasło', PChar(tyt), mb_OK+mb_IconExclamation);
if cipher<>nil then cipher.Free;
result:=false;
exit;
end;
end;
end;
Gdy uruchamiam to z execa, generuje się wyjątek: Out of memory(pomimo, że dostępnej pamięci przed wykonaniem operacji mam ponad 40 MB).
O dziwo, gdy uruchamiam to poprzez run(krok po kroku) to wszystko jest ok.
O co chodzi? Jak tego uniknąć?
Wcześniej tworzę jeszcze TFileStream, ale zwalnianie go przed tym kodem też nic nie daje.
W innych miejscach kod działa.