Synchronní složka v systému Windows 64-bit vysvětlena

Obsah:

Video: Synchronní složka v systému Windows 64-bit vysvětlena

Video: Synchronní složka v systému Windows 64-bit vysvětlena
Video: NetSetMan - Introducing Your Network Settings Manager 2024, Březen
Synchronní složka v systému Windows 64-bit vysvětlena
Synchronní složka v systému Windows 64-bit vysvětlena
Anonim

S vydáním systému Windows 7 ze 64 bitů došlo k malé změně v normálním přidělení složek v adresáři Windows. Dvě nové složky jsou součástí 64bitové verze Windows 7, Windows 8 a Windows 10. Jsou to Sysnative a SysWOW64 složky. Toto je pouze v 64bitovém systému Windows. Pokud spustíte 32bitový systém Windows na 64bitovém počítači, neuvidíte je. Ani je neuvidíte při spuštění 32bitového systému Windows na 32bitovém počítači.

Existuje další složka mimo adresář Windows a volá se Programové soubory (x86). Jsme zvyklí na název složky Program Files, ve kterém se nacházejí spustitelné soubory našich programů. V 64bitových systémech jsou 64bitové programy uloženy ve složce Program Files, zatímco 32bitové programy jsou uloženy v Program Files (x86). Však Windows používá něco jako emulaci pro spuštění 32bitové programy na 64bitovém počítači. A proto je třeba znát a pochopit, jaké jsou systémové složky v systému Windows (64 bitů), takže víte, jak dosáhnout požadovaného souboru.

Na rozdíl od 32bitových počítačů, kde jsou uloženy 32bitové knihovny DLL Složka System32, 64bitová verze systému Windows ukládá DLL související s 64 bitů ve složce System32. To usnadňuje programovací účely a poskytuje zpětnou kompatibilitu. To znamená, že pokud 64bitový program odkazuje na systém32 ve svém kódu, po volání na něj bude 64bitová knihovna DLL automaticky. To pomáhá vývojářům, protože nemusejí měnit kód ve svých programech pro Windows 64-bit.

Stručně řečeno, systém Windows přesunul všechny 32bitové DLL ze složky System32 v adresáři Windows do jiné složky, takže předchozí programy nemusí být rekodifikovány, aby získaly správné knihovny DLL i při použití rozhraní API - po upgradu na 64bitové. K problému dochází, pokud se 32bitová aplikace pokusí přistupovat ke složce System32. V tomto případě se program zhroutí, protože není zapsán pro práci s 64bitovými knihovnami DLL.

Složka SysWOW64 v systému Windows 64-bit

Všechny 32bitové knihovny DLL byly přesunuty do nového SysWOW64 složka v 64bitové verzi systému Windows 7, Windows 8 a Windows 10, takže pokud 32bitové programy volají 32bitové DLL, musí se dostat do složky SysWOW64.

Můžete mít pocit, že vývojáři budou muset naskenovat své programy a aplikace, aby nasměrovali funkce knihovny DLL do složky SysWOW64. Ale Microsoft se o to postaral. Pokud je to 32bitový program, který volá C: Windows System32, emulátor přesměruje cestu na C: Windows SysWOW64. To znamená, že pro běh 32bitových programů v systému Windows 64-bit je použit emulátor, takže existuje správná zpětná kompatibilita a zabránění chybám při volání souborů DLL.

Sysnative složka v systému Windows 64-bit

Image
Image

Mohou existovat případy, kdy může 32bitový program nebo aplikace skutečně potřebovat 64bitovou knihovnu DLL. V takovém případě budete muset použít složku přesměrování Sysnative. SysNative můžete považovat za virtuální složku a alias odkazující na složku System32. Na vašem systému fyzicky neexistuje. Pokud tedy váš 32bitový program potřebuje přístup k 64bitové DLL, nepoužívejte C: Windows System32 protože 32bitový emulátor programu ji převezme do 32bitové složky DLL s názvem SysWOW64. Místo toho použijte C: Windows SysNative jako cesta k programu DLL. Použití nástroje Sysnative v cestě přesměruje do složky System32 namísto složky SysWOW64.

Pokud otevřete soubor Průzkumník Windows, nenajdete složku Sysnative v C: Windows. Dokonce i když nastavíte možnosti složky, zobrazí se skryté a systémové složky. Důvodem je, že Průzkumník souborů systému Windows je 64bitový program při spuštění v 64bitovém systému Windows a složka Sysnative je viditelná a přístupná pouze z 32bitových programů.

Abych to shrnul:

  1. Složky System32 obsahují 64bitové soubory DLL.
  2. SysWOW64 obsahuje 32bitové soubory DLL a 32bitové programy jsou automaticky přesměrovány do této složky
  3. Sysnative je složka přesměrování, která umožňuje 32bitovým programům volat 64bitové knihovny DLL.

Dodatečné čtení: MSDN.

Doporučuje: