【问题标题】:How do I change target platform in visual studio 2017 c++?如何在 Visual Studio 2017 C++ 中更改目标平台?
【发布时间】:2017-09-22 00:20:54
【问题描述】:
我有一个项目可以在 Windows 10 机器上安装和运行,但在 Windows 7 上,当我尝试运行它时会弹出一个通知,提示缺少 .dll 文件。我相信 Visual Studio 需要以 Windows 7 为目标才能在 Windows 7 上运行。当我转到 Visual Studio 的属性页时,“目标平台”字段显示“Windows 10”并且无法更改。如何更改目标平台?
【问题讨论】:
标签:
visual-studio
visual-c++
visual-studio-2017
【解决方案1】:
Visual C++ 项目属性中的“目标平台版本”字段仅选择要构建的 Windows SDK。对于 Win32 桌面应用程序,如果您想针对 Windows 7 等“低级”版本的 Windows 进行构建,则需要将 _WIN32_WINNT 预处理器符号设置为适当的值。
#include <WinSDKVer.h>
#define _WIN32_WINNT 0x0601
#include <SDKDDKVer.h>
详情请见Using the Windows Headers。
Windows 8.1 SDK、Windows 10 SDK (10240)、Windows 10 SDK (10586)、Windows 10 SDK (14393) 和 Windows 10 SDK (15063) 可用于为 Windows Vista SP2 构建 Windows Win32 桌面应用程序、Windows 7 SP1、Windows 8.1 和 Windows 10。
请记住,VS 2015 / VS 2017 C/C++ Runtime 支持 Windows 7 Service Pack 1,但不支持 Windows 7 RTM。 Windows 8.0 也没有得到官方支持,因为此时用户应该已经升级到 Windows 8.1 或 Windows 10。
请注意,使用 VS 2017 为 Windows XP Service Pack 3 构建需要明确使用 v141_xp 平台工具集,因为它需要 Windows 7.1A SDK——支持面向 Windows XP 的最后一个 SDK。请参阅 this blog post 了解使用它的各种含义。
【解决方案2】:
包含文件解释它:
1.包括 SDKDDKVer.h 定义了最高可用的 Windows 平台。
2. 如果您希望为以前的 Windows 平台构建您的应用程序,请包含 WinSDKVer.h 并将 _WIN32_WINNT 宏设置为您希望支持的平台,然后再包含 SDKDDKVer.h。
因此,您需要定位您希望支持的最小 Windows 版本,然后它将支持高于(包括)它的任何版本。这与支持所有以前的 Windows 版本的 Windows 10 SDK 无关。