3

最近、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をインストールすると、プログラムが機能しなくなります。

4

2 に答える 2

2

このブログを読んだと思います。要約すると、7.1 SDKを使用する必要があり、リンカーオプションで最低限必要なバージョンを5.01に設定する必要があります。

于 2013-01-28T22:08:23.813 に答える
2

動作しているInstallShieldプロジェクトと動作していないInnoプロジェクトを使用して、ここでの本当の原因は未登録のmsxml4.dllであると判断できました。私が受け取ったエラーは、この結果の本当の手がかりを与えませんでしたが、私は最終的にそこに着きました...

regsvr32 msxml4.dll
于 2013-01-29T12:26:04.740 に答える