Diese Deklaration kann so richtig sein. Es ist der prinzipielle Hinweis, dass es sich um ein statisches Array handelt, von dem man allerdings die Länge nicht kennt. Meistens steht die Länge an einer anderen Stelle (wie man an deinem C-Code auch sieht).
du kannst jetzt auf verschiedene Art an den Feldinhalt kommen:
1. Du definierst dir ein statisches Array, was groß genug ist, und benutzt eben nur die ersten NumberOfItems Elemente.
2. Du nimmst einen Pointer von WLAN_INTERFACE_INFO und gehst damit durch die Liste.
2. ist meistens schöner und könnte so aussehen:
Delphi-Quellcode:
type PINTERFACE_INFO=^INTERFACE_INFO
INTERFACE_INF0=packed record
//...was auch immer
end;
type WLAN_INTERFACE_INFO_LIST=packed record
dwNumberOfItems:DWORD;
dwIndex:DWORD;
WLAN_INTERFACE_INFO:array[0..0] of INTERFACE_INFO;
end;
//...
var i:integer;
PInfo:PInterface_Info;
begin
PInfo:=@InfoList.WLAN_Interface_Info;
for i:=1 to InfoList.numberofitems do
begin
PInfo^.xyz
//zugriff auf das Feld
inc(PInfo); //aufs nächste Feld schieben
end;
end;
Je nach Gegebenheit gibt es auch noch andere Lösungen...
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.