Heim >Backend-Entwicklung >C++ >Wie kann ich die spezifische Windows 10-Version auf mehreren Plattformen erkennen?
Ziel:
Bestimmen Sie die spezifische Version von Windows 10, die in einem Crossover verwendet wird -Plattform-Codebasis, die auf Windows 7 und höher abzielt.
Herausforderung:
Windows bietet die Funktion IsWindows10OrGreater(), diese ist jedoch in älteren Windows-Versionen nicht verfügbar und möglicherweise auch nicht Geben Sie die Hauptversion des Betriebssystems genau an.
Lösung:
Verwenden Sie die RtlGetVersion-Funktion innerhalb eines versionierungsübergreifenden kompatiblen Ansatzes:
<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>
Diese Funktion Ruft die wahre Betriebssystemversion unter Windows 10 genau ab, auch wenn kein Manifest vorhanden ist.
Alternativer Ansatz:
Für eine verbesserte Kompatibilität und Zukunftssicherheit sollten Sie die Angabe einer Funktion in Betracht ziehen Anforderungen statt spezifischer Betriebssystemversionen. Dadurch wird sichergestellt, dass sich Ihr Code über verschiedene Windows-Versionen hinweg mit unterschiedlichen Funktionen konsistent verhält.
Das obige ist der detaillierte Inhalt vonWie kann ich die spezifische Windows 10-Version auf mehreren Plattformen erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!