私はWinHTTPと一緒にDelphiを使用してインターネットからいくつかのファイルをダウンロードするHTTPリクエストをしていますが、リクエストを行うことはできますが、OleVariantからIStreamを取得する方法はわかりませんResponseStream
から返されます。私はグーグルで多くの時間を過ごしましたが、どうやってそれをするのか分かりません。ここで私が試したものです:OleVariantからIStreamを取得する
var
req: IWinHTTPRequest;
instream: IStream;
begin
req := CoWinHTTPRequest.Create;
req.Open('GET', 'http://google.com', false);
req.Send('');
if req.Status <> 200 then
begin
ShowMessage('failure'#10 + req.StatusText);
FreeAndNil(req);
Application.Terminate;
end;
instream := req.ResponseStream as IStream;
ShowMessage('success');
FreeAndNil(instream);
FreeAndNil(req);
end;
しかし、私はエラー[DCC Error] main.pas(45): E2015 Operator not applicable to this operand type
(ライン45はinstream := req.ResponseStream as IStream;
である)を得ます。
どのようにOleVariantからIStreamを怖がらせるのですか?
'Application.Terminate'を呼び出すと実行が停止するという前提が正しくありません。これはちょうど 'WM_QUIT'メッセージを投稿しますが、あなたの関数は実行を続けます。 –