Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: Code mit AnsiString lief unter 10.0 Seattle, crasht unter 10.4 Sydney

  Alt 12. Jun 2020, 09:07
Ah danke, jetzt habe sogar ich das verstanden. Und ja, unter 10.4 Sydney sieht es nun anders aus:

Delphi-Quellcode:
function _LStrToPChar(const S: _AnsiStr): _PAnsiChr;
begin
  if Pointer(s) = nil then
    Result := @(PEmptyString(Pointer(EmptyStringA))^.Nul)
  else
    Result := Pointer(s);
end;
Vorher (laut dir):
Delphi-Quellcode:
function _LStrToPChar(const S: _AnsiStr): _PAnsiChr;
begin
  if Pointer(s) = nil then
    Result := @(PEmptyString(@EmptyStringA[1])^.Nul)
  else
    Result := Pointer(s);
end;
Aus @EmptyStringA[1] wurde Pointer(EmptyStringA) . Vielen Dank. Ich konnte nichts finden weshalb das geändert worden ist. Außerdem spielen leere Strings hier ja keine Rolle. Wahrscheinlich hat sich noch mehr geändert.

PS: Unter 64 Bit funktioniert alles weiterhin wie gehabt. Wahrscheinlich steckt irgendwo ein Fehler in diesem mystischen Assemblercode.

PPS: Ich habe mal einen neuen Eintrag angelegt unter
https://quality.embarcadero.com/browse/RSP-29567

Geändert von Der schöne Günther (12. Jun 2020 um 09:32 Uhr)
  Mit Zitat antworten Zitat