Zitat von
p80286:
API_funktion(pbytearr):bool
dann solte das in Pascal/Delpi so gelöst werden:
Delphi-Quellcode:
var
mybytearr : array[0..255] of byte;
...
if API_Funktion(@mybytearray) then
Das ist genau das selbe Spielchen (z.B) mit
GetWindowText( hWnd, Buf );
buf = PChar --> Pointer zu (m ersten) Char (acter eines Strings, das Null-Terminiert ist)
dh. man könnte sich ein Buffer wie folgt definieren:
buf: Array[Byte] of Char;
welches 256 Zeichen beinhalten kann und somit ->Buf entspricht !
EDIT:
Bei der Übergabe eines Parameters an eine (
API) Funktion kommt es darauf an, was verlangt wird:
Wenn ein Pointer verlangt wird, heißt es in meisten Fällen, dass der Wert verändert werden können muss! Deshalb könnte man auch vars übergeben, da sie (ne wage Behauptung - da Halbwissen -->) intern als Pointer verwertet werden !
Delphi-Quellcode:
a. procedure ChangeInput(Input: Integer);
b. procedure ChangeInput(var Input: Integer);
b. procedure ChangeInput(Input: PInteger);
Bei a wird nur der Inhalt von "Input" kopiert und übergeben!
Bei beiden bs wird die Referenz übergeben - man kann den Wert verändern !
Ist jetzt ziemlich weit hergeholt aber sollte halt das ganze ein bisschen veranschaulichen
Natürlich garantiere ich wieder nicht auf 100% Richtigkeit meiner Angaben - da sie auf Erfahrung beruhen
MfG