Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Mengesan Versi Windows 10 Dengan Tepat Dari Perspektif Merentas Platform?
Pengesanan Cross-Platform Versi Windows 10
Tugas mengesan Windows 10 dengan tepat dari perspektif merentas platform boleh mencabar kerana ketidakkonsistenan dalam pelaporan versi merentas versi Windows yang berbeza. Walaupun fungsi IsWindows10OrGreater() tersedia dengan mudah, ketiadaannya dalam versi Windows terdahulu mewujudkan halangan.
Mendapatkan semula Versi True OS
Penyelesaian yang berkesan terletak pada memintas keserasian shims dan terus mengakses maklumat versi OS asas. Ini boleh dicapai menggunakan fungsi RtlGetVersion daripada Kit Pembangunan Pemacu Windows (DDK).
Pautan Dinamik Runtime
Untuk mengelakkan pergantungan pada DDK, pemautan dinamik masa jalan boleh digunakan seperti yang ditunjukkan di bawah:
<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"); 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>
Dengan memanggil fungsi ini, versi OS sebenar boleh diambil semula, tanpa mengira sebarang kelipan keserasian atau tetapan nyata.
Pendekatan Alternatif
Pertimbangkan untuk mendekati masalah dari perspektif mengenal pasti ciri yang disokong dan bukannya bergantung pada OS semata-mata versi. Pendekatan ini memberikan lebih fleksibiliti dan kebolehsuaian kepada kemas kini dan peningkatan masa hadapan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Versi Windows 10 Dengan Tepat Dari Perspektif Merentas Platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!