Hallo,
Zitat von
EWeiss:
Code:
WINAMPPLUGINPROPDSP **winampDSP = NULL;
Diese zeile erzeugt ein dynamisches array welches ich in Delphi übersetzen muss.
es wird hier nur ein typisierter Zeiger deklariert und mit NULL initialisiert, wenn ich nicht irre.
Zitat von
EWeiss:
Es ist ein Speicherbereich, in dem hintereinander Pointer auf
Insanzen vom Typ: WINAMPPLUGINPROPDSP
Gespeichert werden.
Hier bin ich mit dir einer Meinung.
Der Zugriff kann über Zeiger-Arithmetik erfolgen oder durch Überlagerung des Speicherbereiches mit einem Array. Vielleicht verhilft dir ein wenig Code zur Erkenntnis?
Delphi-Quellcode:
type
WINAMPPLUGINPROPDSP =
record
// ...
end;
PWinAmpPluginPropDSP = ^WINAMPPLUGINPROPDSP;
PPWinAmpPluginPropDSP = ^PWinAmpPluginPropDSP;
var
WinAmpDSP = PPWinAmpPluginPropDSP;
// access using pointer arithmetic and nil indicating end of list
var
p: PWinAmpPluginPropDSP;
begin
p := WinAmpDSP^;
while Assigned(p)
do
begin
// ShowMessage(p^.anyStringMember)
Inc(p);
end;
end;
// access using array overlay and count indicating end of list
type
TA:
array [0..0]
of PWinAmpPluginPropDSP;
var
pa: ^TA;
count: Integer;
begin
// ...
pa := WinAmpDSP;
for i := 0
to Pred(dspCount)
do
// ShowMessage(pa[i]^.anyStringMember) ;
end;
Getippt und nicht getestet.
Grüße vom marabu