首頁 >後端開發 >C++ >如何跨多個平台偵測特定的Windows 10版本?

如何跨多個平台偵測特定的Windows 10版本?

Linda Hamilton
Linda Hamilton原創
2024-11-05 10:17:02962瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn