Zitat:
Klar aber für den Free fehlt mir dann die Größe!
Da kannst du auch einfach 0 angeben ... es wird ja sowieso der ganze Block freigegeben, egal wie groß.
Du könntest auch
TBytes verwenden (mit SetLength den Speicher reservieren) und als
@MyBuffer[Low(MyBuffer)]
, bzw.
@MyBuffer[0]
oder
PByte(MyBuffer)
übergeben.
(dynamische Arrays sind ja auch "nur" Pointer)
Oder direkt dataset.FieldByName('field').AsBytes (
TField.AsBytes).
Das Problem war ja, daß PChar total falsch gewählt wurde und bevor man dieses auf PAnsiChar umstellte, entschied man sich dann aber doch für das richtigere PByte.
Ein Therapeut entspricht 1024 Gigapeut.