24

わかりましたので、プログラミングとコンパイルに Windows 7 x64 で Visual Studio 2012 を使用しています。アプリケーションは正常に動作しますが、Windows XP SP3 仮想マシンから実行しようとすると、すぐに「xxxx.exe は有効な win32 アプリケーションではありません」というメッセージが表示されます。

アプリケーションは、静的リンクを使用してコンパイルされています。つまり、/MT. targetver.exe で _WIN32_WINNT を 0x0501 に設定しました。構成マネージャーは Win32 に設定され、リンカーの詳細オプションのターゲット マシンはMACHINEX86 に設定されます。

私の targetver.h は次のようになります。

#include <winsdkver.h>

#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#define NTDDI_VERSION 0x0501

#include <SDKDDKVer.h>

また、.NET Framework でコンパイルし/MDてインストールしようとしましたが、どちらも役に立ちませんでした。

私は無知で、Windows XP で動作させる必要があるため、実際に助けを求めることができます。

4

3 に答える 3

24

VC++ 2012 RTM はWindows XP をサポートしていませんでした。これは、2012 年後半に Visual Studio 2012 Update 1 でサポートされました。

VC++ 2012 をターゲットとする Windows XPのCTP をインストールすることはできますが、展開するには CRT を静的にリンクする必要があります。詳細については、このブログ記事を参照してください。

Visual Studio 2012 Update 1 では、Windows XP で VC++ 2012 を使用してビルドされたアプリケーションを実行するための公式サポートと、CRT を動的にリンクする機能が追加されました。

于 2012-10-29T22:51:24.773 に答える
7

次の 2 つのことを行う必要があります。

  • Configuration PropertiesGeneral pageで、 Platform Toolsetを次のように変更します。 Visual Studio 2012 - Windows XP (v110_xp);

  • メニューリンカシステムサブシステムConsole/Windowsに変更します。

詳細な説明はこちら: http://software.intel.com/en-us/articles/linking-applications-using-visual-studio-2012-to-run-on-windows-xp

于 2014-02-26T11:22:19.030 に答える
0

EXE ファイルを生成すると、32 ビット版がプロジェクト フォルダに作成されますbin\x86\Release

于 2014-10-07T18:24:24.763 に答える