Dalam pembangunan perisian moden, mengesan versi Windows 10 merentas platform dan versi berbeza, termasuk Windows 7 dan ke atas , adalah penting untuk keserasian merentas platform dan mengakses ciri khusus versi. Walau bagaimanapun, bergantung pada fungsi khusus Windows seperti IsWindows10OrGreater() menimbulkan cabaran apabila menyasarkan versi Windows sebelum Windows 10.
Alternatif Berbilang Versi
Untuk mengatasi batasan ini , penyelesaian berbilang versi yang teguh diperlukan. RtlGetVersion menyediakan kaedah yang boleh dipercayai untuk mendapatkan semula versi OS tulen, memintas keserasian shim yang selalunya boleh mengembalikan maklumat yang tidak tepat. Fungsi ini boleh diakses sama ada melalui pemautan dinamik DDK atau masa jalan seperti yang ditunjukkan di bawah:
<code class="C++">RTL_OSVERSIONINFOW GetRealOSVersion() { HMODULE hMod = ::GetModuleHandleW(L"ntdll.dll"); if (hMod) { RtlGetVersionPtr fxPtr = (RtlGetVersionPtr)::GetProcAddress(hMod, "RtlGetVersion"); if (fxPtr != nullptr) { RTL_OSVERSIONINFOW rovi = { 0 }; rovi.dwOSVersionInfoSize = sizeof(rovi); if ( STATUS_SUCCESS == fxPtr(&rovi) ) { return rovi; } } } RTL_OSVERSIONINFOW rovi = { 0 }; return rovi; }</code>
Pertimbangan Tambahan
Untuk butiran yang dipertingkatkan, struktur RTL_OSVERSIONINFOEXW boleh digunakan bukannya RTL_OSVERSIONINFOW, memastikan tetapan yang sesuai bagi ahli dwOSVersionInfoSize. Pendekatan ini memberikan hasil yang tepat untuk Windows 10, tanpa mengira kehadiran atau ketiadaan manifes.
Pendekatan Berasaskan Ciri
Melangkaui pengesanan versi Windows, berasaskan ciri pendekatan sering dianggap sebagai alternatif yang unggul. Dengan menyasarkan ciri khusus dan bukannya versi OS, aplikasi boleh menampung rangkaian konfigurasi sistem yang lebih luas dan memastikan prestasi optimum merentas persekitaran yang berbeza.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Versi Windows 10 dengan Amanah Merentasi Platform dan Versi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!