Zitat von
Bernhard Geyer:
Bei Delphi sind Strings nicht Null Terminiert! Kannst du dir die Position nicht merken und dann mittels Copy(...) arbeiten?
Ich hab da nicht viel Wahl - das sind Rückgabewerte von einer
DLL die erwartet dass ich den (maximal benötigten) Speicher für die Strings reserviere. Und die
DLL liefert einfach Null-terminierte Strings.
Sieht in etwa so aus:
Delphi-Quellcode:
setlength(a, 20);
setlength(b, 100);
MyDLLFunction(Pointer(a), Pointer(b));
... und jetzt sind da irgendwelche Strings drin, mit einer Länge <20 bzw 100.
Nur eben das die Längeninfo von den Strings noch immer den alten Wert enthält.
Ich hoffe jetzt wird klarer was das Problem ist.