@mkinzler: es bringt nicht immer was, wenn man nur den Typ / die Lage des Speichers ändert ... hier liegt das Problem mal wirklich bei bei
API 
Außerdem würde er andere Fehler erhalten, wenn r nur den PufferTyp ändert
Selbst wenn es nicht zur Lösung beiträgt ... aber Folgendes kann man dennoch verbessern
Delphi-Quellcode:
for i := 1 to Length(aString) do
buffer[i-1] := aString[i];
in ändern
buffer := aString;
Ein Therapeut entspricht 1024 Gigapeut.