gpt4 book ai didi

c - 尝试从 C 代码获取 Windows 版本

转载 作者:行者123 更新时间:2023-11-30 18:34:18 25 4
gpt4 key购买 nike

我正在开发 C 应用程序(不是 C++)。基本上代码在 *.c 文件中。我想向此文件添加另一个函数来检查运行我的应用程序的 Windows 操作系统版本。我正在尝试使用下面描述的 versionhelper 函数 - https://learn.microsoft.com/en-us/windows/desktop/sysinfo/version-helper-apis 。但是,当我尝试添加下面的头文件时,出现编译错误,提示 -cannot open source file "VersionHelpers.h"--

 #include <VersionHelpers.h>

我认为这是因为我的文件是C文件。有没有办法从C代码读取Windows操作系统版本? (不是 C++)

最佳答案

VersionHelpers.h 只是一个内联头文件,它使用 VerifyVersionInfo 执行常见检查。您可以直接使用可 C 调用的 API。

您还需要注意,GetVersionVerifyVersionInfo 函数受内置 appcompat 版本限制。请参阅Manifest Madness了解详情。

当然,真正的问题是您实际上打算如何处理这些信息?

这是一个“你必须这么高才能骑这个车”的测试吗?如果是这样,VerifyVersionInfo 就是执行此操作的方法以及 VersionHelpers.h 中的代码的作用。

这是“我需要遥测或日志文件的版本”测试吗?在这种情况下,您可能需要使用 GetVersionEx 并抑制弃用警告。确保您不会根据该值做出任何运行时决策。对于 UWP 应用,您可以使用 AnalyticsInfo .

这是“我正在检查使用特定操作系统组件是否安全?”如果是这样,可能有比操作系统检查更好的方法。

参见What’s in a version number?

The VersionHelpers.h header was added in the Windows 8.1 SDK which comes with VS 2013 or later. It's also in every version of the Windows 10 SDK. It is compatible with .c as well as .cpp files.

关于c - 尝试从 C 代码获取 Windows 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52511951/

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