web-dev-qa-db-ja.com

Windowsをターゲットにする方法XP Microsoft Visual Studio C ++で

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

#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で実行するにはどうすればよいですか?

9
Tyler Tian

Windows XP VS 2015(またはVS 2012/VS 2013)と互換性のあるEXE)をビルドするには、デフォルトのv140_xpではなくv140 Platform Toolsetを使用する必要がありますプラットフォームツールセット。

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

Property Page

これは、デフォルトのプラットフォームツールセットがWindows 8.1 SDKを使用している(またはWindows 10 SDKにオプトインできる)ためであり、これはWindows Vista以降のアプリケーションのビルドのみをサポートします。 v140_xp Platform Toolsetを選択する場合、Windows XPまたはWindows Server 2003のターゲット設定をサポートする最後のバージョンであったWindows 7.1 SDKのバージョンを使用しています。

Visual StudioはWindows XP Service Pack 3またはWindows Server 2003 Service Pack 2をターゲットにできることに注意してください。C/ C++ランタイムは古いバージョンのWindowsと互換性がありません。

アプリでDirectXを使用している場合、Windows 7.1 SDKとWindows 8 SDKの間で多くの変更が行われたため、これにはいくつかの深い意味があります。詳細については この投稿 をご覧ください。

VS 2015では、Windows XPサポートをカスタムインストールオプションで選択するか、プログラムと機能/ Microsoft Visual Studio 2015 /変更... /変更を介して選択する必要があります。

Modify

35
Chuck Walbourn

プログラムは開発マシン(Windows 8.1 + MSVS 2015)で正常に動作するようですが、XPマシンでは動作しません。

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

ここをご覧ください: ネイティブデスクトップアプリケーションの展開(Visual C++)

そしてここ: Visual Studio 2015のVisual C++再頒布可能

0
paulsm4