Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#55

Re: Dynamisches Array oder Klasse als Array auslegen

  Alt 28. Sep 2006, 06:29
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
  Mit Zitat antworten Zitat