1

静的リンク(CRT、つまり/MTコンパイラ オプションへのリンク) は、展開が簡単なため、小さなツールを作成する場合に非常に便利だと思います。( Process Explorer などのSysinternals ツールがその例です。)

ただし、CRT はプラグイン アーキテクチャ (シェル拡張など) のようなコンテキストで不足する可能性のあるリソースをいくつか使用していることに注意てくださいLoadLibrary() CRT 静的にリンクされた DLL。

私はいくつかのシェル拡張機能を作成しましたが、この問題に遭遇したことはありません。

CRT に静的にリンクされたインプロセス COM サーバー (シェル拡張など) でこのリソース枯渇の問題を経験した人はいますか?

もしそうなら、そのための「修正」がありますか(CRTへの動的リンクを使用する以外に、残念ながら展開が複雑になり、VCRedistのダウンロードに数メガバイトが必要ですが、代わりにCRTが静的にリンクされた小さなものは数百キロバイトです. ..)。

4

1 に答える 1

1

うーん、隕石の衝突でマシンが破壊された場合に備えて、適切なバックアップがあるかどうか心配するようなものです. あなたのシェル拡張機能のユーザーは、少し前に何かが間違っていることに気がついたでしょう。ファイル + 開くダイアログを使用するたびに 100 個以上の DLL がプロセスに挿入されることは見過ごされません。そのプログラムは 5 秒以上の間、世界に対して死んでいます。

それで、彼はそれについて何かをして、SysInternals の AutoRuns のようなユーティリティで自分のマシンをクリーンアップします。拡張機能が十分に役立つ場合は、それを乗り切ることができます。または、ユーザーは対策を講じず、厳しい上限があることを喜んでいます。拡張機能は失敗しますが、ユーザーがその理由を知る方法はありません。サポートの電話がかかってくるかもしれません。

于 2013-10-06T20:09:24.220 に答える