Sysnative thư mục trong Windows 64-bit giải thích

Mục lục:

Sysnative thư mục trong Windows 64-bit giải thích
Sysnative thư mục trong Windows 64-bit giải thích

Video: Sysnative thư mục trong Windows 64-bit giải thích

Video: Sysnative thư mục trong Windows 64-bit giải thích
Video: Báo cáo đồ án tốt nghiệp - 9.5 - YouTube 2024, Có thể
Anonim

Với việc phát hành Windows 7 64 bit, có một chút thay đổi được giới thiệu trong phân bổ thư mục bình thường trong thư mục Windows. Hai thư mục mới được bao gồm trong phiên bản 64-bit của Windows 7, Windows 8 và Windows 10. Chúng là SysnativeSysWOW64 thư mục. Đây chỉ là trong Windows 64-bit. Nếu bạn chạy Windows 32 bit trên máy tính 64 bit, bạn sẽ không thấy chúng. Bạn sẽ không thấy chúng khi chạy Windows 32 bit trên máy 32 bit.

Có một thư mục khác nằm ngoài thư mục Windows và nó được gọi Tệp chương trình (x86). Chúng tôi được sử dụng để tên của tập tin chương trình thư mục mà nhà thực thi các chương trình của chúng tôi. Trong các hệ thống 64 bit, các chương trình 64 bit được lưu trong thư mục Program Files trong khi các chương trình 32 bit được đặt trong Program Files (x86). Tuy nhiên, Windows sử dụng một cái gì đó giống như một mô phỏng để chạy các chương trình 32 bit trên một máy tính 64-bit. Và do đó, cần phải biết và hiểu thư mục hệ thống trong Windows (64 bit) là gì để bạn biết cách tiếp cận tệp bạn muốn.

Không giống như các máy 32 bit, nơi các tệp DLL 32 bit được lưu trữ trong Thư mục System32, phiên bản Windows 64 bit lưu trữ các tệp DLL liên quan đến 64 bit trong thư mục System32. Điều này là để giảm bớt các mục đích lập trình và cung cấp khả năng tương thích ngược. Đó là, nếu một chương trình 64-bit đề cập đến System32 trong mã của nó, nó sẽ nhận được 64-bit DLL tự động khi được gọi. Điều này giúp các nhà phát triển vì họ không phải thay đổi mã trong chương trình của họ cho Windows 64 bit.

Trong ngắn hạn, Windows đã chuyển tất cả các DLL 32 bit từ thư mục System32 trong thư mục Windows sang một số thư mục khác để các chương trình trước đó không cần phải được mã hóa để có được các tệp DLL thích hợp ngay cả khi sử dụng API - sau khi nâng cấp lên 64 bit. Sự cố xảy ra khi ứng dụng 32 bit cố gắng truy cập thư mục System32. Trong trường hợp này, chương trình sẽ sụp đổ vì nó không được viết để xử lý các tệp DLL 64 bit.

Thư mục SysWOW64 trong Windows 64 bit

Tất cả các DLL 32 bit đã được chuyển sang Thư mục SysWOW64 trong phiên bản 64-bit của Windows 7, Windows 8 và Windows 10, vì vậy khi các chương trình 32 bit gọi 32-bit DLL, chúng phải đến thư mục SysWOW64.

Bạn có thể cảm thấy rằng các nhà phát triển sẽ phải quét các chương trình và ứng dụng của họ để trỏ các hàm DLL vào thư mục SysWOW64. Nhưng Microsoft đã chăm sóc nó. Nếu đó là chương trình 32 bit đang gọi C: Windows System32, trình giả lập sẽ chuyển hướng đường dẫn đến C: Windows SysWOW64. Nghĩa là, để chạy các chương trình 32 bit trong Windows 64 bit, một trình mô phỏng được sử dụng, để có khả năng tương thích ngược và tránh các lỗi khi gọi các tệp DLL.

Thư mục Sysnative trong Windows 64 bit

Image
Image

Có thể có trường hợp chương trình hoặc ứng dụng 32 bit thực sự cần một DLL 64 bit. Trong trường hợp đó, bạn sẽ phải sử dụng thư mục chuyển hướng Sysnative. Bạn có thể xem xét SysNative là một thư mục ảo và một bí danh trỏ đến thư mục System32. Nó không tồn tại trên hệ thống của bạn, như vậy. Vì vậy, nếu chương trình 32 bit của bạn cần truy cập một DLL 64 bit, không sử dụng C: Windows System32 bởi vì trình giả lập chương trình 32 bit sẽ đưa nó tới thư mục DLL 32 bit có tên SysWOW64. Thay vào đó, hãy sử dụng C: Windows SysNative làm đường dẫn đến chương trình DLL. Sử dụng Sysnative trong đường dẫn sẽ chuyển hướng nó vào thư mục System32 thay vì thư mục SysWOW64.

Nếu bạn mở File Windows Explorer, bạn sẽ không tìm thấy thư mục Sysnative trong C: Windows. Ngay cả khi bạn đặt Folder Options để hiển thị các thư mục ẩn và hệ thống. Điều này là do, Windows File Explorer là chương trình 64 bit khi chạy trong Windows 64 bit và thư mục Sysnative chỉ hiển thị và có thể truy cập từ các chương trình 32 bit.

Tóm lại:

  1. Thư mục System32 chứa các tệp DLL 64 bit.
  2. SysWOW64 chứa các tệp DLL 32 bit và các chương trình 32 bit được tự động chuyển hướng đến thư mục này
  3. Sysnative là một thư mục chuyển hướng cho phép các chương trình 32 bit gọi các tệp DLL 64 bit.

Đọc thêm: MSDN.

Đề xuất: