目标:
确定跨平台使用的 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(&rovi) ) { return rovi; } ... (Error handling code) ... }</code>
此函数即使没有清单,也能准确检索 Windows 10 上的真实操作系统版本。
替代方法:
为了提高兼容性和面向未来,请考虑指定功能要求而不是特定的操作系统版本。这可确保您的代码在具有不同功能的不同 Windows 版本中表现一致。
以上是如何跨多个平台检测特定的Windows 10版本?的详细内容。更多信息请关注PHP中文网其他相关文章!