1

WinHTTP は再入可能ではありません ( 12 )。WinINET は再入可能ですか?

WinINET と同期 HTTP を行う ActiveX コントロールがあります。ブラウザー (javascript) が非同期 http 要求 (ajax) を起動し、すぐに ActiveX 操作 (同じ IE プロセス) を呼び出す場合、2 つの操作がインターリーブしているように見えます。おそらく同じ API で再入可能であり、WinINET 状態を壊しています。 ajax の clearInterval が誤って 1 回失敗します。ajax には EXT を使用しており、EXT は clearInterval が初めて機能することを前提としています。

4

1 に答える 1

3

Windows インターネット (WinINet) API の重要な制限は、WinINet をサービス (GUI アプリのみ) で使用しないでください。ダイアログが表示される可能性があるためです。Windows HTTP サービス (WinHTTP) には制限がありません。これは、非同期要求のサポートが改善されたサービス アプリケーション用に設計されています。私の情報では、WinHTTP は再入可能です。あなたが他のと言う参照を持っているなら、それを投稿してください。

COM アプリケーションで WinINET を使用すると、いくつかの影響が生じる可能性があります。非同期要求のさまざまな処理では、 WinINetと WinHTTP の非同期および同期要求のいくつかの違いについて説明します。

WinINET の最後の変更は、Windows XP および Windows Server 2003 R2に対するものでした。WinHTTP には、Windows Server 2008 および Windows Vistaでいくつかの新機能があります。

アプリケーションの一部が十分に大きくなく、HTTP/HTTPS のみを使用している場合は、WinINet アプリケーションから WinHTTP に移植することをお勧めします。WinINET を使用したい、または使用しなければならない場合は、アプリケーションで WinINet を使用する方法の例を質問に投稿できます。おそらくコードを変更すると、マルチスレッドの問題を解決できます。

于 2010-09-07T22:42:29.153 に答える