1

私は最近、この問題に遭遇しました。ビジュアル スタジオ 2008 で単純なコンソール ベースのプロジェクトを作成し、リリース モードでビルドしてリリースしました。

クリーンな Windows XP SP3 マシンで、ダブルクリックしても実行可能ファイルが起動せず、「構成が正しくありません」というエラーが表示されることがわかりました。VS2008 再配布可能パッケージをシステムにインストールすることで、この問題を修正しました。私の質問は:

1-どうしてこうなった?すべての XP マシンで発生したわけではありませんが、一部のマシンで発生しました。単純な win32 プログラムを実行するために必要なファイルが、Windows XP SP3 にデフォルトで存在しなかったことは、非常に信じられないことです。では、notepad.exe やその他のプログラムが実行されているのはどうしてでしょうか。私が考えた 1 つの可能性は、OS に存在するランタイム ファイルが古く、exe マニフェストが新しいバージョンのファイルを参照していたことです。しかし、VS 2008自体はかなり古いので、これは事実なのだろうか。あなたの考えを聞かせてください。

2- 多くのマシンで exe を実行する必要があるため、必要なすべてのライブラリを VS 2008 の win32 プログラムで静的にリンクする方法を検討していました。リンカ オプションの /MT スイッチは認識していますが、すべてのランタイム ライブラリ (C++ ライブラリと他の Windows ライブラリも同様) を処理するかどうか疑問に思っています。

ありがとう。

4

2 に答える 2

3
  1. これは、VS2008 再頒布可能パッケージが Windows にインストールされていないために発生しました。これらは別のアプリケーションによってインストールする必要があります。つまり、バージン Windows インストールには存在しません。しかし、多くの Windows アプリがそれらを使用しているため、いくつかのアプリケーションがインストールされているマシンに存在する可能性があります。メモ帳などのネイティブ Windows アプリケーションはそれらに依存しないため、メモ帳がそれらなしで実行されても驚くことではありません。

  2. typ1232 が既に指摘したように、/MT オプションは問題を解決します (EXE と DLL のサイズを大きくすることを犠牲にして)。ネイティブ Windows API のライブラリは、個別にインストールする必要があるオプションとして具体的に文書化されていない限り、存在することが保証されているため、それらについて心配する必要はありません。

未使用の Windows インストールでリリース モード ビルドを使用してアプリケーションをテストすることは、Windows アプリケーションをテストする上で重要なステップです。

于 2013-06-04T18:16:01.013 に答える