目標:
決定跨平台使用的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中文網其他相關文章!