レスキューではないのですが頑張りました

今回はレスキューの記事ではありません。
うちの良人がプログラマという厄介な仕事をしています。
で、作ったソフトでエラーが出るとのことです。
インストールしてみると確かにエラー出ます。
が、すべてのマシンがエラーというわけではないのです。
エラーを吐くマシンが少ないので放置していたそうです。
わたしのマシンでも試しましたが出たり出なかったりです。
そこで本腰入れて解決してやろうと意気込んでみました。
まずは環境作りです。
VirtualPCでまっさらなXPを作ります。
最低限のアップデートをしてからインストール作業です。
,Net Framework2.0を入れないとインストールすらできないのでインストールします。
その後もん代のソフトを入れます。
起動します。
問題の動作をさせます・・・・・・・エラーです。
で、ここからまずはエラーが出ないようにする方法を探りました。
エラーメッセージからネットで色々と探しましたが見つかりません。
.Ne tFrameworkのバージョン違いやサービスパックを入れたり削除したりあれこれやりました。
とてつもない時間を使ってやりましたが全部ダメです。
まったくヒントが無いまま無駄な作業に時間を費やしました。
インストールされているソフトの影響があるかな???
まずはインストールされているソフトの一覧を出力しようと思い立ちまして
PGLST
というソフトを使います。
更新ファイルもすべて出力してファイルにします。
が、プリンタがMS Officeについているものしかありません。
画質が悪すぎて読めないのでAdobeのAcrobatを入れましてPDFファイルにしました。
とここで問題のソフトを起動するとエラーが出なくなりました。
ふむふむ。
もしかしてAdobeを入れれば解決するのか?
もう一度エラーが出る環境を作りましてAdobeのReaderを入れてみました。
が、こちらではエラーが出ます。
こいつらの違いはと言えばPDFを出力できるかどうかが最大の違いです。
もしかしてプリンタ???
ホストPCにつながっているプリンタを使えるようにしてみましたが解決せず。
ここから山ほどの作業をしましたが結局解決策は見つからずでした。
気を取り直してエラーが出る前と出ない状態のマシンを比較することにしました。
まずはエラーが出る環境のレジストリです。
Regeditを起動し5つにわかれているレジストリをエクスポートします。
その後AdobeAcrobatをインストールし削除します。
ここでレジストリをエクスポートします。
RegDiff
というソフトで比較してみます。
結構違うものです。
1.HKEY_CLASSES_ROOT 
2.HKEY_CURRENT_USER 
3.HKEY_LOCAL_MACHINE 
4.HKEY_USERS
5.HKEY_CURRENT_CONFIG
これらを比較して違うレジストリを一つ一つ削除して動作確認をします。
これにも多くの時間を割きましたが解決策は見つからず・・・・・・
が、ここでへこたれません。
次はファイルです。
DFというソフトを使います。
エラーが出るマシンの一覧を出力しエラーが出なくなったマシンと比較します。
さほどの違いは見つかりませんがWidows\System32の中のDLLがいくつか違います。
それぞれ調べてみましたが何のことやらさっぱりなので実際にコピーしてみます。
エラーが出ないマシンから8個のDLLをコピーしエラーが出るマシンにコピーします。
全部コピーするとエラーが出ません。
で、一つずつ削除してみると犯人がようやく判明しました。
MicrosoftのDLLでMSVCR71.dllというやつが犯人でした。
ここまでおよそ1週間。空き時間をこの問題につぎ込んでようやくです。
この達成感はいいですね。
ま、お金にはならないんですけど・・・・・

コメントを残す