2016-02-27 23 views
5

Windows 8.1でMicrosoft Visual Studio 2015を使用しています。 Windows XPを対象としたプログラムをコンパイルしたい。私はGoogleや他の同様の質問でそれを見てきましたが、誰も助けてくれませんでした。ソリューションの設定では、ターゲットプラットフォームのツールセットはWindows XPに設定されていますが、ターゲットプラットフォームのバージョンにはWindows XPのオプションはありません。 私は(Windowsのヘッダを使用して)https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspxを読んで、私のプログラムにこれらの行を追加しました:Microsoft Visual Studio C++でWindows XPをターゲットにする方法

#define WINVER _WIN32_WINNT_WINXP 
#define _WIN32_WINNT _WIN32_WINNT_WINXP 
#define NTDDI_VERSION NTDDI_WINXP 

しかし、それはまだ動作しません。 「MSVCP140.dll」が見つかりません。私はこのDLLを取得した後、 "VC140.dll"が見つからないと不満を募らせます。その後、 "ucrtbased.dll"、そして "api-ms-win-core-string-11-1-0.dll"と表示されます。これは私のWindows 8.1コンピュータにもありません。プログラムはWindows 8.1では実行できますが、Windows XPでは実行できません。 Windows XPでプログラムを実行するにはどうすればよいですか?

+0

fyi windows xpがサポート外です。 –

+0

エラーについて詳しく説明します。 –

+0

Windows XPはサポートされなくなりました。そのため、死亡した後のMS IDEのバージョンでは、その死んだOSのサポートは廃止されました。古いオペレーティングシステムを対象にしたい場合は、古いバージョンのIDEを使用してください。 –

答えて

25

VS2005(またはVS 2012/VS 2013)でWindows XP互換EXEを構築するには、v140プラットフォームツールセットではなくv140_xpプラットフォームツールセットを使用する必要があります。

あなたのプロジェクトのプロパティ、[全般]ページを参照してください。

Property Page

デフォルトプラットフォームツールセットは、Windows 8.1 SDK(またはあなたがWindowsの10 SDKに選ぶことができます)を使用し、これだけサポートしているので、これは、 Windows Vista以降のアプリケーションを構築する。あなたはv140_xpプラットフォームツールセットを選択した場合は、Windows XPまたはWindows ServerのVisual Studioは、Windows XP Service Pack 3の標的にすることができることを2003

注意をターゲットにサポートする最後のバージョンだったのWindows 7.1 SDKのバージョンを使用していますまたはWindows Server 2003 Service Pack 2をインストールする必要があります.C/C++ランタイムは、旧バージョンのWindowsと互換性がありません。

アプリケーションでDirectXを使用している場合、Windows 7.1 SDKとWindows 8 SDKの間でロットが変更されたため、これには深い意味があります。詳細は、this postを参照してください。 VS 2015で

、あなたはまた、カスタムインストールオプションプログラムを通じて&特長/マイクロソフトのVisual Studio 2015 /変更でWindows XPのサポートを選択する必要があります... /変更:

Modify

+1

私はそれをv140_xpに設定しましたが、それでも動作しません。 v140_xpに設定されていないと、「xxxx.exeは有効なwin32アプリケーションではありません」というエラーメッセージが表示されます。 v140_xpに設定すると、私が質問で述べた欠けているDLLについて不平を言う。 – Tyler

+2

Windows XPシステムまたはVS 2015がインストールされているマシンで実行しようとしていますか? –

+1

ターゲットPCにVC++再配布可能ファイルをインストールしましたか?例: "C:¥Program Files(x86)¥Microsoft Visual Studio 14.0¥VC¥redist¥1033¥vcredist_x86.exe" – Pierre

0

あなたの開発マシン(Windows 8.1 + MSVS 2015)でプログラムがうまく動作するように思えますが、XPマシンでは動作しません。

解決策:.exeと一緒にMSVCランタイムを含める必要があります。

はここを見て:Deploying Native Desktop Applications (Visual C++)

、ここに:Visual C++ Redistributable for Visual Studio 2015

+2

注:両方のリンクが同じページをターゲットにしています – JeffRSon

関連する問題