Wenn da mit Strings über
DLL-Grenzen hinaus agiert wird, kannst du das sauber nicht mit neuen Delphiversionen kombinieren.
Die einzig saubere Lösung:
Entwirf eine saubere neue
DLL-Schnittstelle auf dem neuen Stand, sei es mit WideString oder P(Wide/
Ansi)Char. Dann schreibe in Delphi 6 eine Wrapper-
DLL, die nach außen die alte Funktionalität mit Sharemem bietet.
Auf diese Weise hast du dann für die Zukunft eine moderne
DLL ohne Tricksereien, die trotzdem sauber in das alte System integriert werden kann.