微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Indy TIdHashMessageDigest5 HashStringAsHex 编译时错误:未声明的标识符:'HashStringAsHex'

如何解决Indy TIdHashMessageDigest5 HashStringAsHex 编译时错误:未声明的标识符:'HashStringAsHex'

使用:D7

uses SysUtils,StrUtils,IdHash,IdHashMessageDigest;

..

var
  idmd5: TIdHashMessageDigest5;
  h,v: string;
begin
  idmd5 := TIdHashMessageDigest5.Create;
  try
    h := idmd5.HashStringAsHex(v);
  finally
    idmd5.Free;
  end;

我有这段代码,它在 Delphi 7 的早期编译和运行良好,带有 Indy 的捆绑版本。将 Indy 升级到最新版本 (v10) 后,出现编译时错误

[错误] xxxx.pas(71): 未声明的标识符:'HashStringAsHex'

请帮忙!

附加:

我已经通过更改解决

h := idmd5.HashStringAsHex(v);

到:

h := idmd5.AsHex(idmd5.HashValue(v));

然而,上面的代码是在一个包中(自定义组件)。在我的主应用程序中,相同的更正代码在编译时仍会抛出 undeclared identifier

现在真的很混乱!如何在一个项目中编译相同的代码,而在另一个项目中抛出编译时错误?!

更新

我已经解决了。组件包使用旧的 Indy 库。删除该引用并更新源以包含 v10 库后,它现在可以工作了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。