質問: C++6.0、VB6.0、VBA(Excel2000)で作成した複数のアプリケーション(Windows2000で動作保証)をWindowsXPでも動作保証をしたいのですが、どこを修正し、なにをテストすればよろしいでしょうか? XPと2000の互換性や、アプリケーション互換対応に関連する情報や、問題対応の経験談等をを教えてください。 XPの互換モードを変更することによる対応は都合上できません。 Microsoftが示している「アプリケーション互換性チェック リスト」等も調査しましたが、詳細な情報がのっていませんでした。 【XP環境時の既知の不具合】 大きなデータファイルを入力すると正常に動作しない。 【アプリの特徴】 ・レジストリの読書有 ・Win32API使用(iniファイルの読込等) ・ExcelCOM使用 ・GUIは英語
回答: Google 「動作保障」というのは開発したアプリケーションでWindows XPのロゴを取得したいというわけではなく、開発したアプリケーションがWindows XPで動かないために動くようにしたい、という趣旨ですよね(この意味合いが違うと作業項目も大きく変わります)。 私の経験ではWindows 2000で動作するものがWindows XPで動作しないということはないです。そのためきちんとプログラムを組めばWindows XPでそのまま使えます。 とは言うものの実際のテスト環境ではOSやPC、IEのバージョンやRelease・Debugビルドの環境を変えると動かなかったり挙動がおかしくなることがあります。原因を探すためにテスト用のPCに開発環境を入れると、きちんと動作してしまい原因をさぐれないということもあります。 このような場合私はソースコードの各所にASSERTマクロを入れているのでこれを上書きしてログを出力するようにしています。 たまに原因不明でどうしようもなくなり、該当するモジュールを別のアルゴリズムに作り直すこともあります。しかし9割以上は原因が分かりはプログラミングミスによるバグです。 Windows XPに開発環境を入れても大きなファイル入力時にエラーが起こるようでしたら、エラーの箇所にデバッグポイントを置いて止め、関数の呼び出し履歴をさかのぼって意図しない呼び出しやパラメータが渡っていないかを確認してはどうでしょうか?