質問

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

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

役に立ちましたか?

解決

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

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

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

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

他のヒント

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

2008 年の再頒布可能ファイルは次のとおりです。 ここ.

2005 年の再頒布可能ファイルは次のとおりです。 ここ.

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

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

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

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

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

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

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

新しいプロジェクト -> 「セットアップと展開」 -> 「プロジェクトのセットアップ」

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

Visual Studio 2005 には実際には 2 つの機能があります。

のためのもの オリジナルのリリース

そしてその1 SP1用

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top