c++ - 如何构建与 Visual Studio 2019 最兼容的二进制文件?

标签 c++ windows visual-studio

我在 win7 下使用 VS2019 for C 和 C++
我想构建(x32 位或 x64 位?)二进制文件,这些二进制文件将在所有更高版本的操作系统(包括 Windows Server 2019)下正常运行
我必须设置 WINVER/_WIN32_WINNT 吗?这涉及建筑环境还是目标环境?如果是,是哪个值?
https://learn.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=vs-2019

最佳答案

在 Windows 上,与 Linux 不同,构建环境几乎完全无关紧要。链接时,您不会链接到构建环境中的库,而是链接到 Windows SDK。

严格来说,您可能不需要 WINVER_WIN32_WINNT .它们主要帮助隐藏函数 <windows.h> ,所以您最终不会调用您不打算调用的函数。

但有一些罕见的结构在 Windows 版本中布局发生了变化,在这种情况下,您希望使用旧布局。 Windows 10 支持这两种布局;通常通过检查 .cb结构的成员。您将此字段设置为 sizeof(type) ,这个大小将取决于 WINVER变量。

关于c++ - 如何构建与 Visual Studio 2019 最兼容的二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57142816/

相关文章:

c++ - 声音 API Ubuntu Linux

windows - 是否可以使用标准库来生成进程而不在 Windows 中显示控制台窗口?

c# - Web 服务器上的 System.Net.Http.HttpRequestException

c# - NuGet出现包丢失问题,如何恢复?

c++ - 试图反转一个字符串

c++ - 重用 Boost 的计时器对象

java - 如何在 java 中显示 native 文件系统的文件/文件夹的 "properties window"

visual-studio - 如何避免看到 Visual Studio 反编译器法律警告对话框?

c# - 为什么外键在 C# 和 MySql 之间不起作用?

c++ - 初始化 std::atomic_bool?