Cum pot determina programabil dacă rulați pe Windows pe 64 de biți?
Pentru a determina în mod programatic dacă rulează pe Windows pe 64 de biți, puteți utiliza funcția IsWow64Process. care arată dacă procesul dvs. pe 32 de biți rulează în modul de emulare.
Dar cum stabiliți în mod programatic dacă procesul dvs. pe 64 de biți rulează pe Windows pe 64 de biți? E ușor. Faptul că programul dvs. pe 64 de biți funcționează și înseamnă că rulați pe Windows pe 64 de biți! Dacă ați fost pe o mașină pe 32 de biți, codul dvs. nu a putut începe.
Este ca și cum ai întreba: "Este pornit computerul?". Dacă a fost oprită, programul dvs. nu va putea să pună o întrebare.
Desigur, dacă aveți nevoie de un singur cod sursă pentru a compila în 32 de biți de software și 64-biți, atunci ai nevoie pentru a face un pic mai mult de lucru: am adăugat o sucursală la 16 biți, în cazul software-ului, dacă sunt suficient de nebun pentru a le scrie astăzi.
Nota translatorului: deoarece Delphi nu are încă un compilator pe 64 de biți, nu se știe cum vor fi numite directivele corespunzătoare. Așa că am luat directivele de la FreePascal.
Multe mulțumiri traducătorului pentru traducerea articolelor! Aștept o nouă traducere cu nerăbdare)
Marasmus complet, pentru determinarea sistemului și a procesorului există funcții corespunzătoare WinAPI
SYSTEM_INFO si;
GetSystemInfo (si);
GetNativeSystemInfo (si);
GetNativeSystemInfo nu este o soluție foarte bună, deoarece nu puteți anticipa arhitecturi viitoare, în timp ce IsWow64Process va funcționa acum și pentru orice platforme potențiale viitoare.
Despre utilizarea IsWow64Process pentru a determina capacitatea sistemului, apropo, se spune în descrierea GetNativeSystemInfo.