Delphi-Quellcode:
function hwfunc(ReqInfo:TIdHTTPRequestInfo;ResInfo:TIdHTTPResponseInfo):TMemoryStream;stdcall;
var
vfile:TStringlist;
begin
result := TMemoryStream.Create;
vfile := tstringlist.Create;
vfile.Add('Test hahah _:D');
vfile.SaveToStream(result);
vfile.Free;
result.Position := 0;
ResInfo.ContentStream := result;
ResInfo.WriteContent;
result.Free; / <-- Soll das da wirklich sein ???????????
end;
Ich denke nicht. Schließlich willst du außerhalb der
DLL auf das Ergebnis der Funktion zu greifen.
Sauber wäre:
Delphi-Quellcode:
Procedure hwfunc(Var Result:TMemoryStream;ReqInfo:TIdHTTPRequestInfo;ResInfo:TIdHTTPResponseInfo);stdcall;
var
vfile:TStringlist;
begin
vfile := tstringlist.Create;
vfile.Add('Test hahah _:D');
vfile.SaveToStream(result);
vfile.Free;
result.Position := 0;
ResInfo.ContentStream := result;
ResInfo.WriteContent;
end;
Wobei Result außerhalb der
DLL allociert und freigegeben werden sollte.