Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#19
  Alt 19. Jan 2003, 20:39
Moin Zusammen,

also ich gehe da von der PSDK Deklaration aus, so dass der Typ von aBuffer ein Pointer auf eine USER_INFO_x Struktur ist.
Wie in Delphi sonst üblich einen Record zu übergeben kann ja eigentlich deshalb schon nicht klappen, da man sich ja eine beliebige Anzahl an Einträgen zurückgeben lassen kann, ohne vorher zu Wissen, wieviele es sind.

Ein Witz an diesen Netxxx Funktionen ist ja, dass sie den erforderlichen Speicher selber reservieren.

aBuffer wäre dann also als

Delphi-Quellcode:
var
  aBuffer : PUSER_INFO_1;
deklariert, so dass man auf diesem Wege das Ergebnis verarbeiten kann

Delphi-Quellcode:
for i := 1 to dwEntriesRead do
begin
  //... was auch immer mit aBuffer geschehen soll
  inc(aBuffer); // auf den nächsten Eintrag adressieren
end;
Deshalb auch das Sichern von aBuffer in einer Variablen gleichen Typs, da man ja an NetApiBufferFree die Startadresse des Ergebnisbuffers zurückliefern muss, damit der Speicher wieder freigegeben werden kann.

Als Pointer ist aBuffer in der Funktion nur deshalb deklariert, da es sich um einen Pointer auf verschiedene Datenstrukturen (USER_INF0_x) handeln kann, so dass eine feste Typangabe nicht möglich ist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat