Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用DLL函数时发生访问冲突_Dll_Delphi 2010 - Fatal编程技术网

调用DLL函数时发生访问冲突

调用DLL函数时发生访问冲突,dll,delphi-2010,Dll,Delphi 2010,我在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 P

我在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次执行,下次不执行,下次执行,下次不执行…)
我很困惑。我能做什么


提前感谢

您是否使用共享内存管理器?不(至少不是有意的)。如果您想将一个模型中分配的字符串返回给另一个模块,而该模块会破坏该字符串,则需要使用共享内存管理器。但是在本例中,由于您控制这两个模块,并且使用Delphi特定的类型,为什么不使用包呢?我从来没有编写过包,所以我没有考虑过它。关于DLL;我已经添加了Sharemem单元,它运行良好。我知道(这种情况发生在我身上,因为我没有阅读自动生成的评论--)谢谢