AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Fehler E2250 Es gibt keine überladene Version von GetString ...
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler E2250 Es gibt keine überladene Version von GetString ...

Ein Thema von pici · begonnen am 6. Feb 2024 · letzter Beitrag vom 6. Feb 2024
 
pici

Registriert seit: 6. Feb 2024
2 Beiträge
 
#1

Fehler E2250 Es gibt keine überladene Version von GetString ...

  Alt 6. Feb 2024, 09:08
Hallo liebe Community,

ich habe mich hier angemeldet, weil ich gerade bei einem schweren "Erbe" nicht weiterkomme. Wir haben ein paar Windows-Applikationen in Delphi, welche von einem Freiberufler für uns erstellt wurden. Leider ist der gute Mann plötzlich verstorben.

Meine Delphi-Kenntnisse bezeichne ich im Vergleich zu den Profis im Forum hier mit <10%. Eigentlich mache ich Software für Embedded Systems in C, also eine ganz andere Welt. Leider muss ich nun in einem der Projekte eine kleine Änderung machen die an sich kein Problem ist - mein Problem ist, dass sich das Projekt an sich nicht kompilieren lässt und an einem für mich kryptischem Fehler scheitert.

Es geht um diese Funktion hier:

Code:
function TCustomWSocket.SocketRead(Socket: TSocket; Flag: integer): string;
var
  Received, tRecvcount: longint;
  i: integer;
  tmpStr : String;
  tmpFReadBuffer: TReadBuffer;
begin
  Result:= '';
  tRecvcount:=0;
  Received:=0;

  if Received = SOCKET_ERROR then
    begin
      if WSAGetLastError <> WSAEWOULDBLOCK then
        SocketError(WSAGetLastError);
    end
  else
    if Received>0 then begin //05.11.10: Fix bei .SocketRead: bei Länge 0 gab es RangeError beim Zugriff auf Result[1]
      SetLength(Result, Received);
      Result := TEncoding.Default.GetString(FReadBuffer);
      tmpStr := StringOfChar('-', Length(FReadBuffer));
      for i := 1 to Received do
        tmpStr[i] := Char(FReadBuffer[i]);

      Result := tmpStr;

      SetLength(Result, Received);
      //Move(FReadBuffer, &Result[1], Received);
    end;
end;
Sie wirft den Fehler:

Code:
[dcc64 Fehler] WSockets.pas(846): E2250 Es gibt keine überladene Version von 'GetString', die man mit diesen Argumenten aufrufen kann
in der Zeile

Code:
Result := TEncoding.Default.GetString(FReadBuffer);
Die entsprechende Funktion scheint in einer Systembibliothek zu liegen "System.SysUtils", dahin verweist die Deklaration:

Code:
function TEncoding.GetString(const Bytes: TBytes): string;
begin
  Result := GetString(Bytes, 0, Length(Bytes));
end;
Die Definition von "FReadBuffer" im Programm an sich führt zu zwei Stellen:

Code:
    FReadBuffer: TReadBuffer;
sowie in einer "type"-Deklaration

Code:
  TReadBuffer = array[1..READ_BUFFER_SIZE] of byte;

Ich nerve ungerne in einem Forum mit "Anfängerfragen", aber leider brachte mich hier auch eine Stunde Googlen keinen Schritt weiter. Ich würde mich freuen, wenn jemand Licht ins Dunkel bringen könnte ...

Entwicklungsumgebung ist Delphi 10.1 Berlin.

Ich danke im Voraus

Marco
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz