目的:
クロスで使用されている Windows 10 の特定のバージョンを確認する- Windows 7 以降を対象とするプラットフォーム コードベース。
課題:
Windows は IsWindows10OrGreater() 関数を提供しますが、古いバージョンの Windows では利用できないため、提供できない可能性があります。 OS のメジャー バージョンを正確に報告します。
解決策:
バージョン間互換性のあるアプローチで 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 上の実際の OS バージョンを正確に取得します。
代替アプローチ:
互換性の向上と将来性を確保するには、機能を指定することを検討してください。特定の OS バージョンではなく要件です。これにより、さまざまな機能を持つさまざまな Windows バージョン間でコードが一貫して動作することが保証されます。
以上が複数のプラットフォームにわたって特定の Windows 10 バージョンを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。