У меня есть следующая функция в DLL:
function PedirContraseña() : string;
var
clave, claveCodificada : string;
begin
clave := InputBox('Autenticación', 'Introduzca la clave de acceso', '');
claveCodificada := SHA256Hash(clave);
Result := claveCodificada;
end;
exports PedirContraseña;
Он запрашивает пароль у пользователя, затем применяет хэш SHA256 и возвращает результат этого хэша.
На основное приложение у меня следующий вызов:
function PedirContraseña() : string; external 'seguridad.dll';
procedure Tmenubodega.BitBtn1Click(Sender: TObject);
var
s : string;
begin
inherited;
s := PedirContraseña;
ShowMessage(s);
end;
- При первом нажатии на кнопку все работает нормально.
- Второй раз это все еще работает.
- С этого момента каждые 2 клика будут отображаться исключения нарушения прав доступа в dll (1 раз, нет, в следующий раз, в следующий раз нет ...)
Я в замешательстве. Что я могу сделать?
Спасибо заранее