Ich habe es geschafft, dieses Problem zu reduzieren:
%Vor% Hier wird die capturedString
Variable beschädigt, wenn von einer verschachtelten Methode aus darauf zugegriffen wird. Eine Win32-Kompilierung löst EIntOverflow
aus, eine Win64-Kompilierung schreibt eine (beschädigte) leere Zeichenfolge aus - entweder kann Build in AV oder andere Exceptions mit einigen Manipulationen provoziert werden, aber in allen Fällen ist der Verweis auf die lokale Variable beschädigt, wenn% co_de eingegeben wird % Prozedur.
Dies scheint nur dann zu passieren, wenn Nested
in einer Schließung gefangen ist.
Was läuft falsch?
Das scheint ein Compilerfehler zu sein:
# RSP-18833: Capture by closure korrumpiert die lokale Variable in der verschachtelten Methode
Eine Problemumgehung besteht darin, eine zweite Variable für die Erfassung in der anonymen Methode zu verwenden:
%Vor%Tags und Links delphi closures delphi-10-seattle anonymous-function