首页 > 后端开发 > C++ > 正文

如何跨平台、跨版本可靠地检测Windows 10版本?

Mary-Kate Olsen
发布: 2024-11-05 12:24:02
原创
275 人浏览过

How to Reliably Detect Windows 10 Version Across Platforms and Versions?

检测 Windows 10 版本跨平台和多版本

上下文

由于不准确,检测 Windows 10 的跨平台兼容性可能具有挑战性在 IsWindows10OrGreater() 等可用函数中。本文探讨了一种跨平台和多版本的方法来解决此问题。

解决方案

检索真实操作系统版本的最可靠方法是调用 RtlGetVersion。此函数避免了 GetVersionEx 和VerifyVersionInfo 使用的兼容性填充程序。可以通过动态链接访问它,如以下代码片段所示:

<code class="c++">RTL_OSVERSIONINFOW GetRealOSVersion() {
    HMODULE hMod = ::GetModuleHandleW(L"ntdll.dll");
    if (hMod) {
        RtlGetVersionPtr fxPtr = (RtlGetVersionPtr)::GetProcAddress(hMod, "RtlGetVersion");
        if (fxPtr != nullptr) {
            RTL_OSVERSIONINFOW rovi = { 0 };
            rovi.dwOSVersionInfoSize = sizeof(rovi);
            if ( STATUS_SUCCESS == fxPtr(&amp;rovi) ) {
                return rovi;
            }
        }
    }
    RTL_OSVERSIONINFOW rovi = { 0 };
    return rovi;
}</code>
登录后复制

即使没有清单,此方法也会在 Windows 10 上返回预期结果。

替代方法

建议实施基于功能的解决方案,而不是依赖操作系统版本。这提供了一种更灵活且面向未来的方法。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!