3

vista で Visual Studio 2008 を使用して単純な C++ プロジェクトをコンパイルすると、元の vista マシンと他の vista コンピューターですべて正常に動作します。ただし、XP ボックスに移動すると、「アプリケーションの構成が正しくないため、アプリケーションを開始できませんでした」というエラー メッセージが表示されます。

コンパイルした EXE が XP と Vista で動作するようにするにはどうすればよいですか? 数か月前に同じ問題が発生し、プロジェクトの設定をいじるだけで修正されましたが、どの設定を変更したか覚えていません。

4

5 に答える 5

6

ターゲット コンピューターに Visual Studios 2008 ランタイムをインストールする必要があります。

http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

または、ランタイムを静的にリンクすることもできます。プロジェクトのプロパティ ウィンドウで、次の場所に移動します。

c++ -> コード生成 -> ランタイム ライブラリを選択し、「マルチスレッド /MT」を選択します。

于 2008-09-17T20:43:11.133 に答える
1

アプリを実行しようとしているマシンにランタイム再配布可能ファイルをインストールする必要があります。

2008 年の再配布可能ファイルはこちらです。

2005 年の再配布可能ファイルはここにあります。

両方が必要な場合は、並べてインストールできます。

于 2008-09-17T20:40:39.967 に答える
1

おそらく、VC ランタイムをアプリケーションと共に配布する必要があります。これにはさまざまな方法があります。 Microsoft Visual C++ チームのこの記事では、Visual Studio 2005 または 2008 を使用している場合に、これらの依存関係を配布するさまざまな方法について説明しています。

この記事で述べたように、再頒布可能インストーラー パッケージをダウンロードしてクライアント マシンで起動することはできますが、ほとんどの場合、これは最適なオプションではありません。通常、必要な DLL を含めるより良い方法があります。たとえば、Windows セットアップを介して配布する場合はマージ モジュールを含めるか、単に zip フォルダーを配布する場合は App-Local コピーを含めます。

もう 1 つのオプションは、ランタイム ライブラリをアプリケーションと共に配布する代わりに、ランタイム ライブラリに対して静的にリンクすることです。このオプションは、他の DLL をロードしないスタンドアロン EXE にのみ適しています。また、他のアプリケーションによって読み込まれる DLL でこれを行うことはできません。

于 2008-09-17T20:57:58.897 に答える
0

VisualStudio2005には実際には2つあります

オリジナルリリース用のもの

SP1用のもの

于 2008-09-17T21:38:29.597 に答える
0

ランタイムに静的にリンクするのが最も簡単です。

c++ -> コード生成 -> ランタイム ライブラリを選択し、「マルチスレッド /MT」を選択します。

ただし、これにより、実行可能ファイルが数百キロバイト大きくなります。これは、小さなプログラムを多数インストールする場合に問題になる可能性があります。これは、それぞれがランタイムの独自のコピーによって負荷がかかるためです。答えは、インストーラーを作成することです。

新しいプロジェクト -> 「セットアップとデプロイ」 -> 「セットアップ プロジェクト」

アプリケーション プロジェクト (ランタイムの DLL バージョンを使用して定義) からの出力をインストーラー プロジェクトに読み込み、ビルドします。ランタイム DLL への依存が認識され、インストーラー パッケージに含まれ、ターゲット マシンの正しい場所に適切かつ目立たないようにインストールされます。

于 2008-09-17T21:11:05.823 に答える