Hallo, das Problem mit der
DLL hat sich erledigt. Sorry!
Die neu kompilierte
DLL wurde im Quelltext-Ordner abgelegt, die alte
DLL lag im Debug-Ordner, das konnte natürlich nicht funktionieren.
Das Host-Programm griff daher immer auf die alte DLL zu.
Mein Programm ist ein Passwort-Safe. Die Passworte und PIN's stehen in einem Memo-Feld, werden geladen, entschlüsselt und wieder verschlüsselt und abgespeichert. Zum Schluss wurden sie in ein mit Passwort gesichertes 7-zip-Archiv verpackt. Letzters geht leider nicht mehr.
Ich bin so vor gegangen:
Delphi-Quellcode:
try
ff:=TFileStream.Create(TempPfad,fmOpenRead or fmShareDenyWrite);
except
Result:=false;
Exit
end;
SetLength(s,ff.Size);
try
ff.Read(s[1],Length(s));
finally
ff.Free;
end;
s:=Entschluesseln(s,true);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Delphi-Quellcode:
Buffer:=Verschluesseln(s,true);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
try
try
ff:=TFileStream.Create(TempPfad,fmCreate or fmShareDenyWrite);
except
Exit
end;
ff.Write(Buffer[1],Length(Buffer));
finally
ff.Free
end;
Übergabe an das Memo mit Memo1.Lines.Text:=s und umgekehrt.
Dieses Konstrukt läuft mit Delphi 2005 aber nicht mit Delphi Berlin.
Ich hab's gerade nochmal ausprobiert. Auf meinem alten Vista-Notebook läuft das Programm fehlerfrei.
Was muss ich ändern, es ght mir darum die Datei nicht zeilenweise zu verschlüsseln sondern als Ganzes.
Alle Passwort-Programme, die in einen Browser integriert sind, laufen nach irgend einem Browser-Update oder in einem anderen Browser nicht (mehr). Deshalb das Memo-Feld:
Willie.