A Windows 64-bit verziójának sysnative mappája kifejtette

Tartalomjegyzék:

A Windows 64-bit verziójának sysnative mappája kifejtette
A Windows 64-bit verziójának sysnative mappája kifejtette

Videó: A Windows 64-bit verziójának sysnative mappája kifejtette

Videó: A Windows 64-bit verziójának sysnative mappája kifejtette
Videó: Top 15 REQUIRED Windows Programs Everyone Should Have - YouTube 2024, Lehet
Anonim

A Windows 7 64 bites verziójának felszabadításával a Windows könyvtárában a mappák normál elosztása során kis változás történt. Két új mappát tartalmaz a Windows 7, Windows 8 és Windows 10 64 bites verziójában Sysnative és SysWOW64 mappákat. Ez csak 64 bites Windows rendszerekben. Ha 32 bites Windows operációs rendszert futtat egy 64 bites gépen, akkor nem fogja látni őket. A 32 bites Windows 32 bites gépen történő futtatásakor nem fogja látni őket.

Van egy másik mappa a Windows könyvtáron kívül, és hívják Programfájlok (x86). Régen használjuk a programfájlok mappájának nevét, amely programjaink végrehajtható állományait tartalmazza. 64 bites rendszerekben a 64 bites programokat a Program Files mappában tárolja, miközben a 32 bites programokat programfájlok (x86) tárolják. Azonban a Windows egy olyan emulációt használ, amely 32 bites programokat futtat egy 64 bites gépen. Ezért ismernie kell és meg kell értenie, hogy mi a Windows mappában (64 bites), így tudhatja, hogyan érheti el a kívánt fájlt.

Ellentétben a 32 bites gépekkel, ahol a 32 bites DLL-eket a System32 mappát, a Windows 64 bites verziója 64 bites DLL-t tárol a System32 mappában. Ez megkönnyíti a programozási célokat és visszafelé kompatibilitást biztosít. Ez azt jelenti, hogy ha egy 64 bites program a System32 kódjára hivatkozik, automatikusan megkapja a 64 bites DLL-t. Ez segít a fejlesztőknek, mivel nem kell megváltoztatnia a kódot a 64 bites Windows programokban.

Röviden, a Windows a 32-bites DLL-eket áthelyezte a System könyvtárból a Windows könyvtárba egy másik mappába, így az előző programokat nem kell újraírni, hogy a megfelelő DLL-eket még az API-k használatakor is megkaphassa - 64 bites frissítés után. A probléma akkor jelentkezik, ha egy 32 bites alkalmazás megpróbálja elérni a System32 mappát. Ebben az esetben a program összeomlik, mivel nem íródott a 64 bites DLL-ek kezelésére.

SysWOW64 mappát 64 bites Windows rendszerben

A 32 bites DLL-ek átkerültek az újakra SysWOW64 mappát a Windows 7, a Windows 8 és a Windows 10 64 bites verziójában, így amikor a 32 bites programok 32 bites DLL-eket hívnak fel, el kell érniük a SysWOW64 mappát.

Úgy érzed, hogy a fejlesztőknek be kell szkennelniük programjaikat és alkalmazásaikat, hogy a DLL funkciókat a SysWOW64 mappába irányítsák. De a Microsoft már gondoskodott róla. Ha egy 32 bites program hívja C: Windows System32, egy emulátor átirányítja az elérési utat C: Windows SysWOW64. Ez azt jelenti, hogy 32 bites programokat futtat a 64 bites Windows operációs rendszerben, egy emulátort használnak, így megfelelő visszamenőleges kompatibilitás és a DLL fájlok meghívása során elkerülhető a hiba.

Sysnative Folder 64 bites Windows rendszerben

Image
Image

Előfordulhat, hogy a 32 bites programnak vagy alkalmazásnak valóban szüksége lesz egy 64 bites DLL-re. Ebben az esetben a átirányítási mappát kell használnia Sysnative. A SysNative virtuális mappát és álnevet jelöl, amely a System32 mappára mutat. Ez önmagában nem létezik fizikailag a rendszereden. Tehát ha a 32 bites programnak hozzáférést kell biztosítania egy 64 bites DLL-hez, ne használja C: Windows System32 mert a 32 bites programemulátor a 32 bites DLL nevű mappába fogja vinni. Ehelyett használja C: Windows SysNative mint a DLL-program elérési útja. A Sysnative használata az elérési útban átirányítja a System32 mappába a SysWOW64 mappa helyett.

Ha megnyitja a Fájl Windows Intézőt, a Sysnative mappát nem fogja megtalálni a C: Windows programban. Még akkor is, ha a Mappa beállításokat a rejtett és a rendszer mappák megjelenítésére állítja be. Ez azért van, mert a Windows File Explorer egy 64 bites program, ha 64 bites Windows-ban fut, és a Sysnative mappát csak a 32 bites programokból lehet megtekinteni.

Összefoglalva:

  1. A System32 mappák 64 bites DLL fájlokat tartalmaznak.
  2. A SysWOW64 32 bites DLL fájlokat tartalmaz, és a 32 bites programokat automatikusan átirányítja erre a mappára
  3. A Sysnative egy átirányítási mappa, amely lehetővé teszi a 32 bites programok számára a 64 bites DLL-ek hívását.

További olvasás: MSDN.

Ajánlott: