Hallo,
wieso verwendest Du eigentlich nicht gleich einen WideString?
Ungefähr so:
Delphi-Quellcode:
function ReadWideString(const Stream: TStream): WideString;
var
S: WideString;
WC: WideChar;
begin
S := '';
repeat
Stream.ReadBuffer(WC, 2);
if (WC <> #0) then
S := S + WC;
until WC = #0;
Result := S;
end;
Außerdem gibst Du wohl immer noch einen Pointer auf eine lokale Variable zurück. Das geht nach hinten los. Gib lieber einen WideString zurück und verwende diesen.
Gruß
xaromz