Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#6

AW: Aufruf von Funktion mit Parametern aus PChar: Missverstehe leider Speichermanagem

  Alt 27. Aug 2010, 09:26
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 GetLyricsLength 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);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Aug 2010 um 09:29 Uhr)
  Mit Zitat antworten Zitat