— MNA —
ノートにSP5を当てていないVC++6が入っていたので、試しにこちらでコンパイル。正常にプレイできます。ひょっとしてSP5のインストールが不完全でコンパイラが壊れた!?その可能性もありますが、以前VC++5からVC++6に乗り換えたときも眠っていた微妙にまずいコードが目を覚まし、それが原因で落ちてしまうと言う状態に遭遇したのを思い出しました。
と言うわけで、まずは自分のコードを徹底的に疑ってみることに。調べているうちに残機アイコンのポインタをアクセスすると落ちていることが判明。しかし初期化の時にはこのポインタは問題なく使えています。てことはどこかで破壊されているに違いない!
そう思い、ポインタが使用不能になる箇所を追跡。そして発見しました!派手にバッファオーバーランしている場所を!どうもループの定数を置き換えるのを忘れていたようで、302バイトもオーバーランしていました。ずっと昔からあったのに、今まで動いていたのが不思議なくらいです(^^;こうしてめでたく眠っていたバグを退治できました。でもまだまだありそうな予感・・・。