先ずは自分を疑え

http://d.hatena.ne.jp/akiramei/20071003/1191433015
一ヶ月以上、原因不明だった問題がやっと解決しそうです。現象的はファイルオープンダイアログを表示後、数十秒〜数分経つとアプリが突然落ちるという原因が掴みにくいものでしたが、今回の調査が難航した要因としては、私の心理的な問題もあったなぁ、と反省。元々、自分のプロジェクト(中国へ行っているアレ)でいっぱいいっぱいのところに、この問題で別プロジェクトから応援要請され乗り気がしなかったこと。問題になっているプログラムは客先に納品して10年経過しており、問題が発生しておらず、他の顧客でも同様。客先のマシンがセキュリティ絡みで特殊。などなどの背景があり、最初から問題は環境だと決め付け、ウチのアプリケーションと衝突しているソフトを探そうとしていました。また、正直なところ10年前の2000ファイルからなるコードを調べたくなかった、というのも手伝い、こんな体たらく。

結局、原因はDLLMain内でLoadLibraryしているコードが2か所存在しており、その所為でした。問題発生のタイミングはWindowsXP SP2になった頃から発生するようになったという声がある一方で、セキュリティソフトがLoadLibraryを書き換えているのでセキュリティソフト自体も気になりますが、どっちにしろDLLMain内でLoadLibraryを呼ぶこと自体行儀が悪い*1ので止めることに。っていうかそもそも明示的に読み込む必要がないDLLなので、何であんなコード書いてあるんだろ?って感じですが。(^^;