首页 > 后端开发 > C++ > 如何跨多个平台检测特定的Windows 10版本?

如何跨多个平台检测特定的Windows 10版本?

Linda Hamilton
发布: 2024-11-05 10:17:02
原创
983 人浏览过

How Can I Detect the Specific Windows 10 Version Across Multiple Platforms?

跨平台检测 Windows 10 版本

目标:

确定跨平台使用的 Windows 10 的特定版本-面向 Windows 7 及更高版本的平台代码库。

挑战:

Windows 提供了 IsWindows10OrGreater() 函数,但在旧版本的 Windows 中不可用,并且可能无法使用准确报告主要操作系统版本。

解决方案:

在跨版本兼容方法中利用 RtlGetVersion 函数:

<code class="c++">typedef LONG NTSTATUS, *PNTSTATUS;
#define STATUS_SUCCESS (0x00000000)

typedef NTSTATUS (WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);

RTL_OSVERSIONINFOW GetRealOSVersion() {
    HMODULE hMod = ::GetModuleHandleW(L"ntdll.dll");
    ... (Module handle and function lookup code) ...
        RTL_OSVERSIONINFOW rovi = { 0 };
        rovi.dwOSVersionInfoSize = sizeof(rovi);
        if ( STATUS_SUCCESS == fxPtr(&amp;rovi) ) {
            return rovi;
        }
    ... (Error handling code) ...
}</code>
登录后复制

此函数即使没有清单,也能准确检索 Windows 10 上的真实操作系统版本。

替代方法:

为了提高兼容性和面向未来,请考虑指定功能要求而不是特定的操作系统版本。这可确保您的代码在具有不同功能的不同 Windows 版本中表现一致。

以上是如何跨多个平台检测特定的Windows 10版本?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板