Bei einem dynamischen Array gibt es dazwischen noch einen Zeiger.
Aber bei statischen Array liegt der Arrayspeicher direkt in der Variable, womit @buf und @buf[0] auf die selbe Adresse zeigen. (aber [0] ist wenigstens konsequent/einheitlich)
Was ist DrawTextToDC und was sagt der Debugger zum Inhalt in Buffer/Text?
SizeOf(Buffer) ist definitiv falsch, denn ließ mal nach, was
WM_GETTEXT verlangt.
"Characters" und nicht "Bytes", also Length(Buffer)
PS:
Delphi-Quellcode:
buffer: array[0..1024] of Char;
Text: PWideChar;
Char und PWideChar?
Das paßt nicht wirklich zusammen.
Und passend zum SendMessage, sollte es also PChar heißen, wobei der Pointer eigentlich nicht unbedingt nötig ist und man überall auch direkt auf Buffer zugreifen könnte.