Khác biệt giữa bản sửa đổi của “Dynamic Link Library”
Nội dung được xóa Nội dung được thêm vào
n clean up, replaced: sử dùng → sử dụng (2) using AWB |
|||
Dòng 21:
Thư viện liên kết động, đúng như tên gọi của nó, là một [[thư viện (phần mềm)|thư viện]] cho phép các ứng dụng có thể liên kết đến và sử dụng nó. Nó được xem là một tổ hợp các hàm và dữ liệu mà có thể được sử dụng bởi nhiều ứng dụng khác nhau ở cùng một thời điểm. ''Ví dụ'': thư viện user32.dll hoặc kernel32.dll là các thư viện liên kết động mà mỗi ứng dụng Windows đều phải dùng đến.
Khi đã được viết và đóng gói trong một DLL, một hàm có thể được sử dụng ở bất cứ ứng dụng nào dưới dạng mã máy của nó mà không phải quan tâm đến mã nguồn nó được viết chi tiết ra sao. Với các ứng dụng trước kia, ta có thể đính kèm [[tập tin|file]] mã nguồn và sử
== Ưu và nhược điểm của thư viện liên kết động ==
Dòng 59:
==== Các thành phần chứa trong của DLL: ====
Các DLL thường bao gồm [[mã lệnh]], [[dữ liệu]] và các tài nguyên. Mã lệnh được lưu trữ trên một khu vực chỉ đọc (read-only), do đó nó có thể được sử dụng chung cho các yêu cầu từ các ứng dụng. Tuy nhiên, dữ liệu của DLL thì không như vậy. Mỗi một yêu cầu từ phía ứng dụng sẽ nhận được một bản sao riêng của các đoạn[[khối dữ liệu|
Khu vực lưu trữ mã bao gồm các lớp và các hàm độc lập (không có quan hệ qua lại) với nhau được thể hiện qua trong DLL. Trong trường hợp các lớp (class) thì tất cả các chức năng và [[dữ liệu]] đã được [[giới hạn]] trong một thực thể, nhưng với các hàm độc lập có quan hệ với nhau thì ta cũng có một số dữ liệu chia sẻ toàn cục. Các lớp và hàm có trong DLL cung cấp cho ứng dụng sử dụng được gọi là thành phần export từ DLL. Còn nếu DLL của ta sử dụng các hàm từ các DLL khác, thì chúng được gọi là thành phần import tới DLL.
Dòng 146:
* Một tiến trình sử dụng liên kết ở thời điểm nạp có thể bị chấm dứt bởi hệ thống nếu như DLL không tìm thấy ở thời điểm bắt đầu chạy. Tuy nhiên, nếu sử dụng liên kết động ở thời điểm chạy thì chương trình không bị chấm dứt ngay, mà còn cho ta một số phương án để có thể khắc phục lỗi. Ví dụ như, khi không tìm thấy DLL, chương trình không dừng chương trình ngay lập tức mà có thể tùy chọn cho phép người dùng cung cấp một đường dẫn khác tới DLL.
* Một tiến trình sử
* Một ứng dụng mà liên kết không tường minh tới quá nhiều DLL sẽ khởi động rất chậm bởi vị Windows nạp tất cả các DLL đó khi ứng dụng nạp để chạy. Để tăng hiệu suất khi khởi động, ứng dụng có thể có các liên kết không tường minh đến các DLL cần thiết được dùng ngay khi chương trình bắt đầu, và dùng liên kết tường minh tới các DLL khác ở thời điểm hợp lý hơn.
|