Guten Morgen Emil,
du hast Recht - die Prozedur AddDSP() ist fehlerhaft. Zuerst musst du die Initailsierung von winampDSPcounter sicher stellen:
Delphi-Quellcode:
// unit BassWaDSP;
var
winampDSPcounter : DWORD = 0;
Dann müssen ein paar Änderungen an der Prozedur AddDSP() vorgenommen werden:
Delphi-Quellcode:
Procedure AddDSP(winampDsp: WINAMPPLUGINPROPDSP); stdcall;
var
a: DWORD;
begin
a := 0;
// freien slot suchen
while (a < winampDSPcounter) and Assigned(Winamp_DSP[a]) do
Inc(a);
if a = winampDSPcounter then
// neuer slot wird gebraucht
begin
// array um ein Element vergrößern
Inc(winampDSPcounter);
ReallocMem(Winamp_DSP, winampDSPcounter * SizeOf(WINAMPPLUGINPROPDSP));
end;
Inc(winampDSPhandle);
winampDsp^.handle := winampDSPhandle;
// plugin an freier Stelle einfügen
Winamp_DSP^[a] := winampDsp;
end;
Testen musst du.
Grüße