Deine Umsetzung ist nicht korrekt. Insbesondere sind winampDsp und winampDSP nicht das gleiche. Hoffentlich bist du nicht schon an anderen Stellen in diese Falle getappt.
Delphi-Quellcode:
procedure AddDSP(dsp: PWinampDSPInfo);
type
TDspPtrArray = array [0..0] of PWinampPluginPropDSP;
PDspPtrArray = ^TDspPtrArray;
var
i: DWORD;
winampDSP: PDspPtrArray;
begin
for i := 0 to winampDSPcounter do
if not Assigned(winampDSP^[i]) then
Break;
if i = winampDSPcounter then
begin
// no empty slot, so add a new one
winampDSP := ReallocMem(winampDSP, i * SizeOf(PWinampDSPInfo));
Inc(winampDSPcounter);
end;
dsp^.handle := winampDSPhandle;
// insert the new Winamp DSP
winampDSP^[i] := dsp;
end;
Wieder ohne Garantie.
marabu