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.