Hast du Speicher reserviert für den Parameter?
Sonst ist es klar, dass es knallt.
Delphi-Quellcode:
procedure TfrmMain.lvDblClick(Sender: TObject);
var
p: PChar;
begin
GetMem(p, Length(urls[0]) +1);
// Speicher reservieren, da eine lokale Variable nach Durchlauf der Funktion/Prozedur nicht mehr besteht
StrPCopy(p, urls[0]);
cthread := StartPlayStream(p);
end;
function OpenURL(
url: PChar) : Integer;
var
icy: PChar;
Len, Progress: DWORD;
begin
Result := 0;
// restlicher Code hier...
FreeMem(
url);
// Speicher wieder freigeben
end;