最近、MFCライブラリを使用するVS2005プロジェクトからソースコードを取得しました。最初にプロジェクトをVS2012にアップグレードし、Windows 8でソフトウェアを正常にビルドして実行できるようになりました。次に、WindowsXPマシンにソフトウェアを展開したいと思いました。
プラットフォームツールセットをWindowsXPにビルドするように設定し(v110_xpオプションを使用)、ターゲットマシンに「VisualStudio2012Update1用のVisualC++再頒布可能パッケージ」をインストールしました。ソフトウェアを実行しても、何も起こらないようです。いくつかのロギング関数を介して、LoadFrame(IDR_MAINFRAME)を呼び出すとkernel32.dllで例外が発生することを確認できます。Windows XPでのリモートデバッグはVS2012で使用できないため、LoadFrameでこれ以上デバッグできません。
何がうまくいかない可能性があるアイデアはありますか?Visual C ++再頒布可能パッケージは、ターゲットマシンにインストールする正しいバージョンですか?次に何をしようとすべきですか?
アップデート
私のプロジェクトはすでに7.1SDKを使用するように設定されており、リンカーオプションで最低限必要なバージョンが5.01に設定されています。
InstallShieldを使用してインストーラーを生成し、MFC、CRT、およびATLの再配布可能ファイルを含めると、インストーラーが機能し、プログラムがWindowsXPで実行されるようになります。再配布可能ファイルについての私の理解は、関連するdllをsystem32フォルダー(または同等のもの)にコピーするだけであるということですか?あれは正しいですか?
ただし、ファイルをコピーするか、vsredist_x86.exeを実行するか、Inno Setupを使用してソフトウェアとdllをインストールすると、プログラムが機能しなくなります。