Tập tin DLL là gì, và chúng hoạt động như thế nào?
Hầu hết thời gian chúng tôi chỉ đi qua các tập tin DLL khi một phần mềm nhất định là không thể làm việc do thiếu một số tập tin .dll . Sau dấu nhắc này, chúng tôi lên mạng để lấy tệp DLL đó, đặt nó vào thư mục thích hợp và chạy phần mềm. Và đó là nó - trường hợp đóng cửa về các tập tin DLL.
Tuy nhiên, sẽ rất thú vị khi hiểu thêm về các tệp cụ thể này. Họ có vẻ quan trọng, vì sự vắng mặt của họ có thể ngăn chặn các phần mềm chạy, vì vậy chúng là gì? Và chúng hoạt động như thế nào? Hãy lấy một số câu trả lời.
Tệp DLL?
Hầu như tất cả mọi người có, tại một số điểm trong thời gian, xử lý các tập tin DLL, thường khi một phần mềm mới được cài đặt không hoạt động vì một trong những tập tin đó là mất tích.
DLL là viết tắt của "Dynamic-Link Library", và là việc Microsoft thực hiện khái niệm thư viện chia sẻ trong các hệ điều hành Microsoft Windows và OS / 2. Về cơ bản chúng giống như EXE, nhưng được đặt tên khác nhau để rõ ràng trong quá trình liên kết. Tuy nhiên, các tệp DLL không thể được thực hiện trực tiếp, do đó tồn tại các công cụ như rundll.exe và rundll32.exe .
Các tệp DLL không có gì khác hơn là một phương tiện để các nhà phát triển sử dụng mã và dữ liệu được chia sẻ, cho phép nâng cấp các chức năng mà không cần phải liên kết lại hoặc biên dịch lại các ứng dụng. Nói cách khác, các tệp DLL chứa mã và dữ liệu được sử dụng bởi nhiều ứng dụng khác nhau. Một tệp DLL duy nhất có thể được sử dụng bởi các ứng dụng khác nhau, nếu chúng yêu cầu nó, loại bỏ sự cần thiết cho nhiều bản sao của cùng một thông tin.
Các tệp DLL hoạt động như thế nào?
Hãy tưởng tượng hai tệp riêng biệt: "example.exe", một tệp thi hành chung và "library.dll", một tệp DLL được sử dụng bởi tệp thực thi đó. Các tệp đó được hệ điều hành kết nối khi “example.exe” chạy như thế nào?
Khi "example.exe" chạy, hệ điều hành tải nó và tìm thấy một bảng dữ liệu bên trong nó, nói rằng (rõ ràng là không phải trong từ) "chương trình này sử dụng danh sách các hàm sau từ tệp DLL library.dll, " về mặt kỹ thuật được gọi là "nhập khẩu" hoặc "chức năng được nhập" từ tệp DLL "library.dll" trong chương trình "example.exe".
Sau đó, mã trình tải tìm kiếm “library.dll” và, nếu tìm thấy nó, tệp sẽ được tải. Bên trong tệp DLL này, có một danh sách khác, được gọi là “danh sách xuất khẩu”, kết nối các địa chỉ cụ thể với từng hàm bên trong tệp DLL. Từ thời điểm này, khi “example.exe” cần gọi một hàm từ “library.dll, ” nó chỉ đơn giản sử dụng địa chỉ đó.
Cách nhận và lưu trữ các tệp DLL
Khi một phần mềm nhất định thiếu một tệp DLL, cách tiếp cận thông thường là tìm kiếm tệp đó trực tuyến và lưu trữ nó trong ổ cứng của chúng tôi. Nó sẽ hoạt động nếu bạn đặt DLL bên trong thư mục của phần mềm, nhưng như tôi đã giải thích ở trên, một số phần mềm có thể cần tệp đó, vì vậy tốt hơn là lưu trữ nó ở nơi tất cả chúng có thể tiếp cận nó - và đó là thư mục “System32” (C) : \ Windows \ System32). Người dùng x64 cũng nên sao chép tệp DLL thành “C: \ Windows \ SysWOW64” (cả hai thao tác này đều cần có đặc quyền của Quản trị viên).
Tuy nhiên, phương pháp này không được tất cả mọi người đề xuất, vì nó có thể mang lại một số rủi ro như DLL lỗi thời, nhiễm virus và vân vân. Từ kinh nghiệm cá nhân của tôi, tôi không bao giờ gặp vấn đề với các tệp DLL (tôi thường lấy chúng từ trang này, nhưng hãy chắc chắn chọn tùy chọn “Tải xuống tệp Zip” để tránh phần mềm của bên thứ ba), do đó, cuối cùng tất cả đi xuống sở thích cá nhân.
Bạn có biết thông tin này về các tệp DLL không? Có điều gì đó quan trọng bị thiếu trong bài viết này? Hãy cho chúng tôi biết trong phần bình luận.