gpt4 book ai didi

c++ - 如何使用Visual Studio 2019定位Windows 7?

转载 作者:行者123 更新时间:2023-12-02 10:27:12 30 4
gpt4 key购买 nike

我想使用Visual Studio 2019来享受最新的C++新增功能,但目标是Windows 7。
我使用VS 2019向导创建了一个Windows C++应用程序(在Windows 10上运行)。
向导创建了一个targetver.h文件,其内容如下:

#pragma once

// // Including SDKDDKVer.h defines the highest available Windows platform.
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
#include <SDKDDKVer.h>
我按照注释行中的说明进行操作,并在 targetver.h中添加了以下几行(在 #include <SDKDDKVer.h>行之前):
// Target Windows 7 SP1
#include <WinSDKVer.h>
#define _WIN32_WINNT 0x0601
为了测试这一点,我在程序的主函数中调用了Windows 7中不支持的API( PathCchAppend )。
该程序构建良好(我 将CRT静态链接静态链接),并在Windows 10中正常运行。
在Windows 7中执行时,同一程序失败,显示以下错误消息:
Error message when trying to run the VS 2019 C++ application on Windows 7
现在,该程序应该完全不编译来创建 ,因为我指定了Windows 7目标,并且上述API在Windows 7上不可用。
这是Windows SDK中的错误吗?
是否可以使用VS 2019和Windows 10 SDK定位Windows 7,在代码中使用Windows 7中不支持的API或结​​构时,在构建过程中出现错误,以及如何?

最佳答案

VS 2019的工具集和针对Windows 7 Service Pack 1的最新Windows 10 SDK支持。
您已经在Windows 10 SDK中正确配置了Windows header :

#include <winsdkver.h>
#define _WIN32_WINNT 0x0601
#include <sdkddkver.h>
在这种模式下,您仍然可以调用Windows 7不支持的API,这就是为什么在运行时调用 PathCchAppend会生成,链接和失败的原因。
您看到的问题也可能与目标计算机上没有通用C / C++运行时有关。在目标测试计算机上安装 x86和/或 x64 native版本。
参见 Microsoft Docs

关于c++ - 如何使用Visual Studio 2019定位Windows 7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63874422/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com