Und dann kommt noch etwas dazu.
Mit Delphi 2009 wurden die LongStrings erweitert. (nicht nur, dass der UnicodeString dazu kam)
Also, selbst mit SharedMemmory gibt es dann Probleme, wenn man AnsiString zwischen
DLL und EXE austauscht, aber Einer mit Delphi 2007 oder älter und der Andere mit Delphi 2009 oder neuer kompiliert wurde.
Reine Lesezugriffe auf der Anderen Seite würden aber noch funktionieren, aber den String verändern und ein Lesezugriff auf einen String, aber mit concatinieren zweier/mehrerer String kann knallen.
Seit D2009 hat der AnsiString zwei Word (einen Integer) mehr in seiner Verwaltungsstruktur (CodePage und CharSize) ... vorher gab es nur Length und RefCount.