Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Windows

File DLL là gì và chúng hoạt động như thế nào?

Thường chỉ gặp file DLL khi phần mềm báo thiếu file .dll không chạy được. Tải file DLL đó từ mạng, bỏ vào thư mục thích hợp, phần mềm chạy – xong, case closed về DLL.

Nhưng thú vị hơn nếu hiểu rõ về các file này. Chúng quan trọng vì vắng mặt có thể ngăn phần mềm chạy. Vậy chúng là gì? Hoạt động ra sao? Tìm hiểu ngay.

File DLL là gì?

Gần như ai cũng từng gặp DLL khi phần mềm mới cài không chạy do thiếu file.

DLL = Dynamic-Link Library – triển khai của Microsoft cho khái niệm shared library (thư viện chia sẻ) trong Windows và OS/2. Chúng về cơ bản giống EXE, nhưng đặt tên khác để rõ ràng trong quá trình linking. DLL không thể chạy trực tiếp – do đó có công cụ như rundll.exe và rundll32.exe.

File DLL là phương tiện cho developer dùng code và dữ liệu chung, nâng cấp chức năng mà không cần re-link hoặc re-compile ứng dụng. Nói cách khác: DLL chứa code/dữ liệu dùng cho nhiều ứng dụng khác nhau. Một file DLL đơn lẻ có thể phục vụ nhiều ứng dụng nếu chúng cần, loại bỏ bản sao thừa của cùng thông tin.

File DLL hoạt động như thế nào?

Hãy tưởng tượng 2 file: example.exe (executable thường) và library.dll (DLL được exe dùng). Khi example.exe chạy, OS kết nối chúng như thế nào?

  1. example.exe chạy, OS nạp nó, tìm bảng dữ liệu bên trong nói: "chương trình này dùng các hàm sau từ file DLL library.dll" – kỹ thuật gọi là imports hoặc imported functions từ DLL "library.dll" trong chương trình "example.exe".
  2. Loader code tìm library.dll, nếu thấy thì nạp file. Bên trong DLL có danh sách khác: export list – ánh xạ địa chỉ cụ thể cho từng hàm trong DLL.
  3. Kể từ đó, khi example.exe cần gọi hàm từ library.dll, nó chỉ dùng địa chỉ đó.

Lấy và lưu file DLL như thế nào

Khi phần mềm thiếu DLL, cách thường: tìm file đó online, lưu vào ổ cứng. Đặt trong thư mục phần mềm sẽ chạy, nhưng như giải thích, nhiều phần mềm có thể cần file đó → tốt hơn lưu nơi tất cả đều truy cập được – thư mục System32 (C:\Windows\System32). Người dùng x64 cũng copy vào C:\Windows\SysWOW64 (cần quyền Admin).

Tuy nhiên, cách này không được khuyến khích bởi rủi ro: DLL cũ, nhiễm virus... Từ kinh nghiệm cá nhân, mình không gặp vấn đề (thường tải từ trang uy tín, chọn "Download Zip File" tránh phần mềm thứ 3) – cuối cùng tùy gu mỗi người.

Bạn đã biết thông tin này về DLL? Có điều gì quan trọng thiếu trong bài? Cho biết trong bình luận!