Sysnetive папката в Windows 64-bit обяснено

Съдържание:

Sysnetive папката в Windows 64-bit обяснено
Sysnetive папката в Windows 64-bit обяснено

Видео: Sysnetive папката в Windows 64-bit обяснено

Видео: Sysnetive папката в Windows 64-bit обяснено
Видео: Why Windows Phone Failed - And How They Could've Saved It - YouTube 2024, Ноември
Anonim

С пускането на Windows 7 на 64-битове имаше малка промяна в нормалното разпределение на папки в директорията на Windows. Две нови папки са включени в 64-битовото издание на Windows 7, Windows 8 и Windows 10. Те са Sysnative и SysWOW64 папки. Това е само в 64-битови Windows. Ако пуснете 32-битови Windows на 64-битова машина, няма да ги видите. Нито ще ги виждате, когато работите с 32-битови Windows на 32-битова машина.

Има и друга папка извън директорията на Windows и се нарича Програмни файлове (x86), Ние сме свикнали с името на папката Програмни файлове, в която се помещават изпълнимите файлове на нашите програми. В 64-битовите системи 64-битовите програми се съхраняват в папка Програмни файлове, докато 32-битовите програми се намират в програмните файлове (x86). Windows обаче използва нещо като емулация за изпълнение на 32-битови програми на 64-битова машина. И оттам, има нужда да знаете и да разберете какви са системните папки под Windows (64 бита), така че да знаете как да достигнете до желания файл.

За разлика от 32-битовите машини, където 32-битовите DLL се съхраняват в Папка System32, 64-битовата версия на Windows съхранява DLL, свързани с 64 бита в папката System32. Това е за облекчаване на програмните цели и за осигуряване на обратна съвместимост. Това означава, че ако 64-битова програма се отнася до System32 в своя код, тя ще получи 64-битовата DLL автоматично при извикване. Това помага на програмистите, тъй като те не трябва да променят кода в своите програми за Windows 64-bit.

Накратко, Windows премести всички 32-битови DLL от папката System32 в директорията на Windows в друга папка, така че не е необходимо да се прекодират предишните програми, за да се получат правилните DLL файлове дори при използване на приложни програмни интерфейси - след надстройването до 64-битови. Проблемът възниква, когато 32-битово приложение се опита да получи достъп до папка System32. В този случай програмата ще се срине, тъй като не е написана за обработка на 64-битови DLL файлове.

SysWOW64 папка в Windows 64-битова

Всичките 32-битови DLL бяха преместени в новия SysWOW64 папка в 64-битовата версия на Windows 7, Windows 8 и Windows 10, така че когато 32-битовите програми извикват 32-битови DLL, те трябва да достигнат папката SysWOW64.

Може да се чувствате, че разработчиците ще трябва да сканират своите програми и приложения, за да насочват функциите на DLL към папката SysWOW64. Но Microsoft вече се е погрижил за това. Ако това е 32-битова програма, която се обажда C: Windows System32, емулаторът ще пренасочи пътя към C: Windows SysWOW64, Това означава, че за да стартирате 32-битови програми в Windows 64-bit, използва се емулатор, така че да има правилна обратна съвместимост и да се избегнат грешки при извикване на DLL файлове.

Sysnative папка в Windows 64-битова

Image
Image

Възможно е да има случаи, в които 32-битова програма или приложение може наистина да се нуждаят от 64-битов DLL. В този случай ще трябва да използвате папката за пренасочване Sysnative, Можете да разгледате SysNative като виртуална папка и псевдоним, който сочи към папката System32. Тя не съществува физически във вашата система, като такава. Така че, ако вашата 32-битова програма се нуждае от достъп до 64-битов DLL, не я използвайте C: Windows System32 тъй като 32-битовият емулатор на програмата ще го отведе до 32-битовата DLL папка, наречена SysWOW64. Вместо това, използвайте C: Windows SysNative като път към DLL програмата. Използването на Sysnative в пътя ще го пренасочи към папка System32 вместо SysWOW64 папка.

Ако отворите Файл за Windows Explorer, няма да намерите папката Sysnative в C: Windows. Дори ако зададете опциите за папки, за да покажете скритите и системните папки. Това е така, защото Windows File Explorer е 64-битова програма, когато се изпълнява в 64-битов Windows, а папката Sysnative е видима и достъпна само от 32-битови програми.

Да обобщим:

  1. Системните папки съдържат 64-битови DLL файлове.
  2. SysWOW64 съдържа 32-битови DLL файлове и 32-битовите програми се пренасочват автоматично към тази папка
  3. Sysnative е папка за пренасочване, която позволява на 32-битовите програми да извикват 64-битови DLL файлове.

Допълнително прочетено: MSDN.

Препоръчано: