サイトアイコン CAD日記

KB2467175

昨日、大量のWindowsUpdateが実施されたと思ったら、
けっこう大きめの問題が報告された。
Windows2000ユーザーが、WindowsUpdate後に、うちの
CADを起動しようとしたら、エラー出て起動できないというもの。
「プロシージャエントリポイントFindActCtxSectionStringWが
ダイナミックリンクライブラリKERNEL32.dllから見つかりませんでした。」
というエラーらしい。
Windows2000ユーザーは、以下2つのパッチを入れないほうがよい。
・Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージの
 セキュリティ更新プログラム (KB2467175)
・Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージの
 セキュリティ更新プログラム (KB2467174)
もし、入れてしまっていたら、早急にアンインストールすることを勧める。
(以下9行、2011/04/18追記)
その後の調査で、KB2467175をアンインストールするだけでは
解決しないことが判明した。
VC2005だったら、以下の手順が必要。
1.Microsoft Visual C++ 2005 Redistributable – KB2467175 をアンインストール
2.Microsoft Visual C++ 2005 Redistributable もアンインストール
3.一つ前の再頒布可能パッケージ(2010年9月のもの)をインストール
Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ ATL のセキュリティ更新プログラム
ちなみにXP以上のユーザーは関係ない。
FindActCtxSectionStringWがXP以降に実装された関数だからで、
なんでそんなパッチがWindows2000に適用されてしまうのかってことだ。
おそらく、VC2005と2008とつくったアプリケーションが大抵動かなくなる。
幸いなことに、うちのCADはWindows2000を動作保証外にしていた。
もし動作保証していたとしたら、この問題をマイクロソフトに報告して、
あーだこーだと面倒くさいことになっていただろう。
つまり、この問題はマイクロソフト側のミスであると考えられ、
この後に何らかのアナウンスがされるのではないかと思われる。
しかし、Windows2000でWindowsUpdateが継続されていたという事実におどろいた。
すでにサポートの期限が切れているわけだから、とっくにWindowsUpdateも
停止されていると思い込んでいた。
ついでに言っておくと、VC2005開発者は以下のパッチを当面入れてはいけない。
Microsoft Visual Studio 2005 Service Pack 1 セキュリティ更新プログラム (KB2465367)
こいつを入れたあとにビルドした、「共有DLLでMFCを使う」としたモジュールが、
上記のKB2467175を入れていないユーザーで動かなくなる。
ちゃんとWindowsUpdateしているユーザーでは問題ないので、影響は低いけれども...。
このKBに対応した再頒布可能パッケージがマイクロソフトから配布されるのを待ち、
そいつを入れさせてから、このKBを当てたVCでビルドしたものをユーザーに
配布することで、すべてのユーザーで動作させることができる。
以前同様の問題に直面した経験があるから、今回も同じことが起きることがわかる。
けっこう当たっていると思う。
今後の動向を見守ってみよう。

モバイルバージョンを終了