Soeine Abfrage nur, wenn die Prozedur auch dafür vorgesehn ist.
Oftmals geht sowas nicht und man muß entweder die nötige Länge über eine andere Funktion (ala GetLyrics
Length o.Ä.) auslesen
und bei Anderen muß man die Variable auf eine bestimmte maximal zu erwartende Länge vorbelegen und danach dann kürzen.
Und nur manchmal kann man es ala
Delphi-Quellcode:
procedure TheProc(data: PChar: len: Integer): Integer;
i := TheProc(nil, 0);
P := GetMem(i);
TheProc(P, i);
machen.
Du aber übergibst einfach so NIL, und in ilyrics einfach so irgendeinen unbestimmten/zufälligen Wert.
Ich würde es also erstmal so probieren:
Delphi-Quellcode:
plyrics := nil;
ilyrics := 0;
spieler.BassPlayer1.GetLyrics(id3info.Artist,id3info.Titel,false,plyrics,Ilyrics);
GetMem(plyrics,ilyrics+1);
spieler.BassPlayer1.GetLyrics(id3info.Artist,id3info.Titel,false,plyrics,ilyrics);
FreeMem(plyrics);