Einzelnen Beitrag anzeigen

mr_emre_d
(Gast)

n/a Beiträge
 
#8

Re: Pointer - ein schwarzes Tuch

  Alt 13. Feb 2009, 19:13
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
  Mit Zitat antworten Zitat