Emil, ich bin sehr müde, aber das hier erkenne ich, wenn ich deinen Beitrag #50 sequentiell durchgehe:
Delphi-Quellcode:
function BASS_WADSP_Load(const dspfile: PChar; x, y, Width, Height: integer;
proc: WINAMPWINPROC): HDSP; stdcall;
var
winampDsp: WINAMPPLUGINPROPDSP;
cnt: integer;
begin
// so holst du dir nur 4 Byte Speicher für einen Pointer:
// winampDsp := AllocMem(sizeof(WINAMPPLUGINPROPDSP));
// Besser so:
winampDsp := AllocMem(sizeof(WINAMPPLUGINPROPDSP^));
// So löschst du den Zeiger genauso effektiv, als ob du ihn auf NIL setzt:
// FillChar(winampDsp, 0, sizeof(winampDsp));
// Besser so:
FillChar(winampDsp^, 0, sizeof(winampDsp^));
// ...
end;
Du erkennst den Unterschied? Dann wirst du auch ähnliche Stellen in deinem Code erkennen, falls noch weitere solche Fehler drin stecken.
Grüße vom marabu