Hallo,
Ein ReAlloc erzeugt unter Umständen einen neuen Pointer
und der alte wird nicht mehr verwendet.
Vielleicht solltest du bei der Übergabe ein Pointer auf einen PChar
nehmen statt das PChar selber.
Der Zusammenhang:
Tja, Dlls.
Mache mal zum Test ein SetLength vor
DLL-Aufruf
mit einem grösseren Werte also in der
DLL gemacht wird.
Dann verringert das
DLL-SetLength den Speicher nur,
ReAlloc sollte nicht aufgerufen werden.
Zu "grosser Wert".
In der
DLL muss eh Speicher angefordert werden,
wei viel hängt wovon ab ?
Das man einer Funktion ein PChar + dessen Grösse übergeben muss
ist doch nichts angewöhnliches.
Wenn ich z.B. eine
API-Funktion für Pfade benutzen will,
nehme ich MAX_PATH als Grösse des PChar,
obwohl ich vielleicht kleiner Pfade zurückbekomme.
Heiko
PS:
MS (jaja, genau die) hatten mal in einer alten Word (2.0 für Dos)
auch so nen ReAlloc-Fehler drin, der "ab- und zu" zum Absturz
des Programms geführt hatte.
Das stand mal in nem C-Buch bei ReAlloc drin.