Forum: Sonstige Fragen zu Delphi
Delphi
by samso,
12. Jun 2020
Danke! Diese Änderung ist ja eher kosmetischer Natur. @EmptyStringA und Pointer(EmptyStringA) erzeugt - solange die Strings nicht Zerobased sind - ja exakt den gleichen Assemblercode. Damit ist diese Fehlermöglichkeit raus.
Forum: Sonstige Fragen zu Delphi
Delphi
by samso,
12. Jun 2020
Deshalb ja meine Frage in #7.
Bei dem Aufruf MapAndLoad(PAnsiChar(asAnsi)... wird implizit _LStrToPChar aufgerufen. Wenn Du über die zusätzlichen Variable mit asPAnsiChar := Addr(asAnsi); gehst, dann wird _LStrToPChar nicht benutzt.
Ich vermute, wenn Du statt
asPAnsiChar := Addr(asAnsi);
wieder
Forum: Sonstige Fragen zu Delphi
Delphi
by samso,
11. Jun 2020
Das befürchte ich auch. Wie sieht die Funktion _LStrToPChar bei Sydney denn aus? Bei dem alten Delphi ist es im wesentlichen ein Cast:
function _LStrToPChar(const S: _AnsiStr): _PAnsiChr;
begin
if Pointer(s) = nil then
Result := @(PEmptyString(@EmptyStringA)^.Nul)
else
Result := Pointer(s);
end;
Forum: Sonstige Fragen zu Delphi
Delphi
by samso,
11. Jun 2020
Nicht richtig gelesen... Es heißt MarshaledAString
MarshaledAString = _PAnsiChr