Sự khác biệt giữa DLL và LIB

Sự khác biệt giữa DLL và LIB
Sự khác biệt giữa DLL và LIB

Video: Sự khác biệt giữa DLL và LIB

Video: Sự khác biệt giữa DLL và LIB
Video: LIÊN XÔ ĐÃ VIỆN TRỢ NHỮNG GÌ ĐỂ GIÚP VIỆT NAM ĐÁNH MỸ | LUẬN BÀN LỊCH SỬ #18 2024, Tháng bảy
Anonim

DLL vs LIB

Thư viện là một tập hợp các tài nguyên có thể được sử dụng để phát triển các ứng dụng. Một thư viện thường được tạo thành từ các chương trình con, hàm, lớp, giá trị và kiểu. Trong quá trình liên kết (thường được thực hiện bởi trình liên kết), các thư viện và tệp thực thi tham chiếu lẫn nhau. Các tệp thư viện được chia thành thư viện tĩnh và thư viện động tùy thuộc vào thời gian mà các chương trình con được tải đến ứng dụng đích. Theo đó, tệp LIB là thư viện được liên kết tĩnh và tệp DLL là thư viện được liên kết động.

DLL là gì?

Thư viện liên kết động (thường được gọi là DLL) là một triển khai thư viện chia sẻ được phát triển bởi Microsoft. Nó sử dụng các phần mở rộng.dll,.ocx hoặc.drv và chúng được sử dụng trong hệ điều hành Microsoft Windows và OS / 2..dll được sử dụng bởi các tệp DLL thông thường. Và phần mở rộng.ocx được sử dụng bởi các thư viện có chứa các điều khiển ActiveX và phần mở rộng.drv được sử dụng bởi các tệp trình điều khiển hệ thống kế thừa. Định dạng tệp DLL giống như tệp Windows EXE (tệp Có thể thực thi di động trên Windows 32-bit / 64-bit và Có thể thực thi mới trên Windows 16-bit). Do đó, bất kỳ sự kết hợp nào của mã, dữ liệu và tài nguyên đều có thể được chứa trong tệp DLL (giống như trong tệp EXE). Trên thực tế, các tệp dữ liệu có định dạng tệp DLL được gọi là DLL tài nguyên. Thư viện biểu tượng (với phần mở rộng.icl) và tệp phông chữ (với phần mở rộng.fon và.fot) là các ví dụ về DLL tài nguyên.

Các thành phần được gọi là các phần tạo nên một DLL và mỗi phần có các thuộc tính riêng như chỉ đọc / có thể ghi và thực thi / không thực thi. Các phần mã có thể thực thi được, trong khi các phần dữ liệu không thực thi được. Các phần mã được chia sẻ và các phần dữ liệu là riêng tư. Điều đó có nghĩa là tất cả các quy trình sử dụng DLL sẽ sử dụng cùng một bản sao mã, trong khi mỗi quy trình sẽ có một bản sao dữ liệu riêng. Thư viện động chính cho Windows là kernel32.dll, chứa các hàm cơ sở (chức năng liên quan đến tệp và bộ nhớ) trên Windows. COM (Mô hình đối tượng thành phần) là phần mở rộng của DLL thành OOP (Lập trình hướng đối tượng). Các tệp DLL thông thường dễ sử dụng hơn tệp COM.

LIB là gì?

LIB tệp là thư viện tĩnh (còn được gọi là thư viện liên kết tĩnh). Các tệp LIB chứa một tập hợp các chương trình con, các hàm bên ngoài và các biến. Các tệp LIB được giải quyết tại thời điểm biên dịch (trái ngược với thời gian chạy). Mã thực sự được sao chép vào ứng dụng đích. Trình biên dịch, trình liên kết hoặc chất kết dính sẽ thực hiện việc giải quyết này và tạo ra tệp đối tượng và tệp thực thi. Quá trình này được gọi là quá trình xây dựng tĩnh.

Sự khác biệt giữa DLL và LIB là gì?

Thư viện LIB có thể được gọi trong thời gian biên dịch, nhưng thư viện DLL chỉ có thể được gọi trong thời gian chạy. Tệp LIB lớn hơn đáng kể so với tệp DLL. Một vấn đề rất phổ biến với tệp DLL là vấn đề lập phiên bản. Điều này xảy ra khi mã của DLL bị thay đổi và ứng dụng sử dụng phiên bản DLL sai. Đây không phải là vấn đề liên quan đến tệp LIB. Về khả năng tái sử dụng, khi viết các phiên bản mới của hệ thống hoặc ứng dụng hoàn toàn mới, DLL luôn tốt hơn LIB.

Đề xuất: