3 votes

Delphi 10.1 Berlin : Erreur abstraite SOAP

J'ai migré une DLL ISAPI SOAP de Delphi 10 Seattle vers Delphi 10.1 Berlin Update 2.

Après la migration, une "Abstract Exception" est levée au moment de l'exécution.

Je constate que la classe "TWebRequest" dans "Web.HTTPApp.pas" nécessite

// 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;

Mais le "TISAPIRequest" de "Web.Win.IsapiHTTP" ne met pas en œuvre la première fonction.

Donc dans "Web.Win.IsapiHTTP", j'ai copié 3 paramètres ReadClient de la fonction 2 paramètres :

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; 

L'exception "Abstract Error" disparaît mais l'erreur "Stream read error" est soulevée.

Avez-vous trouvé un problème similaire ?

Existe-t-il une solution de rechange ?

1voto

ar099968 Points 1068

C'est un autre bug de Delphi.

La solution se trouve à l'adresse suivante cette adresse

Il suffit de remplacer 3 fonctions défectueuses par les fonctions correctes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X