42

Visual Studio 2012 RC に小さな C/C++ プロジェクトがあります。

このアプリケーションは argv を解析し、別の .exe ファイルを次のように呼び出します。ShellExecute

私のアプリケーションは Windows7 では完璧に動作しますが、Windows XP x86 では trhows は有効な Win32 アプリケーション エラーではありません。

マルチスレッド(/MT)とWin32プラットフォームでコンパイルしました

これは私の #includes です

#include <string>
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <cstdio>
#include <vector>
#include <windowsx.h>
#include <shlobj.h>
#include <stdio.h>
#include <tchar.h>
#include <direct.h>

ありがとう

4

8 に答える 8

50

2013 年 2 月になり、次のように設定して VS2012 で XP をターゲットにできるようになりました。

プロジェクト プロパティ -> 一般 -> プラットフォーム ツールセット:

Visual Studio 2012 - Windows XP (v110_xp)

次の場所にある msvcp110.dll ライブラリなどをアプリケーションと共に再配布する必要があります。"<Program Files>\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.CRT\"


2015 年 8 月に Visual Studio 2015 で更新

今はかなりの品揃えのようです。Visual Studio 2015 - Windows XP (v140_xp)の設定を使用して、VS2015 でアプリケーションをコンパイルできました。Win XP で実際に実行するには、リリース ビルド用にmsvcr100.dll 、デバッグ ビルド用にmsvcr110.dllおよびmsvcr100d.dllをデプロイ (アプリケーションと一緒にコピー) する必要がありました (番号 100 と 110 に違いがあることに注意してください。lib msvcr100dもデバッグします)。 .dllは再配布できない場合があります) Visual Studio 2015 で Windows XP をターゲットにする

于 2013-02-07T15:03:08.330 に答える
43

VS 2012 アプリケーションは、Windows XP では実行できません。

このVC++ ブログを参照して、それを機能させる理由と方法を確認してください。

2013 年 2 月からサポート/可能のようです。方法については、以下のnoelicus の回答を参照してください。

于 2012-07-03T06:37:15.920 に答える
6

選択された回答は直前のものであり、noelicus は v110_xp プラットフォーム ツールセットに関して正しい更新を行いましたが、この動作を引き起こす可能性のある問題がもう 1 つあります。

この問題に関するメモは、マヘシュのコメントにすでに投稿されています。数日間苦労して自分で見つけたので、これを強調したいと思います。

そのため、「構成プロパティ -> リンカー -> システム -> サブシステム」に空白がある場合でも、XP および Win2003 では「有効な Win32 アプリではありません」というエラーが表示されますが、Win7 ではこの厄介なエラーなしで動作します。サブシステムを配置するとすぐにエラーがなくなりました:コンソール。

于 2015-02-27T17:22:14.007 に答える
4

少なくとも2つの解決策があります。

  1. Visual Studio 2010をインストールする必要があります。次に、Visual Studio 2010から、[表示]->[ソリューションエクスプローラー]->プロジェクトを右クリック->コンテキストメニューから[プロパティ]を選択すると、ウィンドウの[プロジェクト名]プロパティページ->構成が表示されます。 [プロパティ]->[一般]->[プラットフォームツールセット]で、[Visual Studio 2010(v100)]を選択します。
  2. VisualStudio2012のC++を使用したWindowsXPターゲティングで説明されているVisualStudio2012Update1が必要です。
于 2013-02-07T08:32:02.007 に答える
-1

PowerShell で VS2013 32 ビット コンソール アプリケーションを起動しているときにこの問題が発生しましたが、cmd で起動してもこの問題は発生しませんでした。

于 2015-10-09T14:08:52.970 に答える