Delphi 10.1柏林:SOAP抽象错误

时间:2017-02-07 17:58:37

标签: delphi soap delphi-10.1-berlin

我已将ISAPI DLL SOAP从Delphi 10 Seattle迁移到Delphi 10.1 Berlin Update 2。

迁移后,会引发运行时“抽象异常”。

我注意到“Web.HTTPApp.pas”中的“TWebRequest”类需要

// Read count bytes from client
function ReadClient(var Buffer: TBytes; Offset: Integer; Count: Integer): Integer; overload; virtual; abstract;
function ReadClient(var Buffer; Count: Integer): Integer; overload; virtual; abstract;

但是“Web.Win.IsapiHTTP”中的“TISAPIRequest”没有实现第一个功能。

所以在“Web.Win.IsapiHTTP”中,我从2个参数函数复制了3个参数ReadClient:

function TISAPIRequest.ReadClient(var Buffer: TBytes; Offset: Integer; Count: Integer): Integer;
begin
  Result := Count;
  if not ECB.ReadClient(ECB.ConnID, @Buffer, DWORD(Result)) then
    Result := -1;
end; 

“抽象错误”异常消失但引发“流读取错误”。

您是否发现了类似的问题?

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

这是另一个Delphi错误。

可以在this address

找到解决方案

只需用正确的函数替换3个错误的函数。