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

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

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

Video: Sự khác biệt giữa Assembly và DLL
Video: Bí Ẩn Khoa Học Đằng Sau Con Tàu Nhanh Nhất Từng Được Chế Tạo 2024, Tháng bảy
Anonim

hội vs DLL

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 DLL là các tệp thư viện được liên kết động. DLL được phát triển bởi Microsoft. Nhưng do một số vấn đề xảy ra với tệp DLL, Microsoft đã đưa ra định dạng tệp Assembly (với. NET framework). Các tệp hợp ngữ rất giống với các tệp DLL về mặt vật lý, nhưng chúng có nhiều điểm khác biệt bên trong.

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 chứa đ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à tệp 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à 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.

Hội là gì?

Tệp lắp ráp đã được Microsoft giới thiệu để giải quyết một số vấn đề xảy ra với tệp DLL. Các tệp hợp ngữ đã được giới thiệu với Microsoft. NET framework. Một đơn vị chức năng logic có thể thực thi được gọi là Assembly. Assemblies có thể thực thi trong. NET CLR (Common Language Runtime). Về mặt vật lý, các tập hợp tồn tại dưới dạng tệp EXE hoặc DLL. Tuy nhiên, chúng rất khác với Microsoft Win32 DLL, về mặt nội bộ. Tệp hợp ngữ được tạo thành từ tệp kê khai, siêu dữ liệu, MISL (mã Ngôn ngữ Trung gian của Microsoft) và các tài nguyên khác. Một hội đồng tự mô tả. Tệp kê khai chứa thông tin như tên, phiên bản, văn hóa, tên mạnh, danh sách tệp, loại và phụ thuộc. Mã MISL được thực thi thông qua CLR (không thể thực thi trực tiếp).

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

DLL là một thư viện được liên kết động. Mặc dù, các tập hợp là ngang bằng về mặt vật lý với các DLL, nhưng bên trong chúng rất khác nhau. Không thể duy trì tính nhất quán giữa một tập hợp các DLL, nhưng CLR có thể duy trì tính nhất quán giữa một tập hợp các tập hợp, bởi vì các tập hợp tự mô tả (chúng chứa danh sách các phần phụ thuộc bên trong). Không giống như đối với DLL, thông tin lập phiên bản được thực thi cho các hợp ngữ (bởi CLR). Có thể triển khai song song (các ứng dụng khác nhau sử dụng các phiên bản khác nhau) với các tập hợp.

Đề xuất: