64 bitų "Windows" paaiškinamasis aplankas paaiškintas

Turinys:

64 bitų "Windows" paaiškinamasis aplankas paaiškintas
64 bitų "Windows" paaiškinamasis aplankas paaiškintas

Video: 64 bitų "Windows" paaiškinamasis aplankas paaiškintas

Video: 64 bitų
Video: iOS 7 vs Windows Phone 8.1 vs Android 4.4! - YouTube 2024, Balandis
Anonim

Išleidus 64 bitų "Windows 7", į "Windows" katalogą įprastų aplankų paskirstymo buvo šiek tiek pakeistos. Du nauji aplankai yra įtraukti į "Windows 7", "Windows 8" ir "Windows 10" 64 bitų leidimą. Tai yra Nuoseklus ir SysWOW64 aplankai. Tai yra tik 64 bitų Windows. Jei 64 bitų kompiuteryje paleidžiate 32 bitų "Windows", jūs jų nematysite. Jūs taip pat nematysite, kai 32 bitų Windows 32 bitų kompiuteryje.

Yra dar vienas aplankas, esantis už "Windows" katalogo ribų, ir jis vadinamas Programos failai (x86). Mes naudojamės aplanko programos failais pavadinimu, kuriame yra mūsų programų vykdomosios programos. 64 bitų sistemose 64 bitų programos saugomos aplanke Program Files, o 32 bitų programos yra laikomos programos bylose (x86). Tačiau "Windows" naudoja kažką panašaus į emuliaciją 32 bitų programų paleidimui 64 bitų kompiuteryje. Taigi, reikia žinoti ir suprasti, kokie sistemos aplankai yra "Windows" (64 bitų), kad žinotumėte, kaip pasiekti norimą failą.

Skirtingai nuo 32 bitų įrenginių, kur saugomi 32 bitų DLL " System32" aplankas64 bitų "Windows" versija saugo DLL, susijusių su 64 bitų aplanke System32. Tai supaprastina programavimo tikslus ir užtikrina atgalinį suderinamumą. Tai reiškia, kad jei 64 bitų programa nurodo "System32" savo kodą, ji automatiškai gauna 64 bitų DLL. Tai padeda kūrėjams, nes jiems 64 bitų "Windows" programose nereikia keisti jų programų.

Trumpai tariant, Windows perkelia visus 32 bitų DLL iš "System32" aplanko į "Windows" katalogą į kitą aplanką, todėl ankstesnes programas nereikia pakartoti, norint gauti tinkamus DLL, net jei naudojate API, atnaujinus iki 64 bitų. Problema kyla, kai 32 bitų programa bando pasiekti sistemos32 aplanką. Tokiu atveju programa sugenda, nes ji nėra parašyta tvarkyti 64 bitų DLL.

"Windows" 64 bitų aplanko "SysWOW64" aplankas

Visi 32 bitų DLL buvo perkelti į naują SysWOW64 aplankas 64 bitų "Windows 7", "Windows 8" ir "Windows 10" versijoje, taigi, kai 32 bitų programos skambina 32 bitų DLL, jie turi pasiekti aplanką SysWOW64.

Galite jausti, kad kūrėjai turės nuskaityti programas ir programas, kad nukreiptų DLL funkcijas į SysWOW64 aplanką. Tačiau "Microsoft" jau tai rūpinosi. Jei tai 32 bitų programa, kuri skambina C: Windows System32, emuliatorius nukreipia kelią į C: Windows SysWOW64. Tai reiškia, kad paleisti 32 bitų programas "Windows 64 bitų", naudojamas emuliatorius, kad būtų tinkamas atgalinis suderinamumas ir išvengta klaidų, skambinant DLL failais.

64 bitų Windows operacinė aplinka

Image
Image

Gali būti atvejų, kai 32 bitų programai ar programai tikriausiai reikia 64 bitų DLL. Tokiu atveju turėsite naudoti nukreipimo aplanką Nuoseklus. Galite laikyti SysNative virtualiu aplanku ir slapyvardžiu, kuris nurodo į "System32" aplanką. Tai nėra fiziškai jūsų sistemoje. Taigi, jei jūsų 32 bitų programa turi pasiekti 64 bitų DLL, nenaudokite C: Windows System32 nes 32 bitų programos emuliatorius pateiks jį į 32 bitų DLL aplanką, pavadintą SysWOW64. Vietoj to naudokite C: Windows SysNative kaip kelias į DLL programą. Naudojant Sysnative keliu bus nukreiptas į "System32" aplanką, o ne į "SysWOW64" aplanką.

Jei atidarote failą "Windows Explorer", "C: Windows" aplanko "Sysnative" nepavyks. Net jei nustatysite aplanko parinktis, rodysite paslėptus ir sistemos aplankus. Taip yra todėl, "Windows File Explorer" yra 64 bitų programa, kai ji paleidžiama 64 bitų "Windows" sistemoje, o aplankas "Sysnative" yra matomas ir prieinamas tik iš 32 bitų programų.

Apibendrinant:

  1. "System32" aplankuose yra 64 bitų DLL failų.
  2. SysWOW64 yra 32 bitų DLL failų, o 32 bitų programos automatiškai nukreipiamos į šį aplanką
  3. Sysnative yra nukreipimo aplankas, kuris leidžia 32 bitų programoms skambinti 64 bitų DLL.

Papildoma informacija: MSDN.

Rekomenduojamas: