სხვაობა ასამბლეასა და DLL-ს შორის

სხვაობა ასამბლეასა და DLL-ს შორის
სხვაობა ასამბლეასა და DLL-ს შორის

ვიდეო: სხვაობა ასამბლეასა და DLL-ს შორის

ვიდეო: სხვაობა ასამბლეასა და DLL-ს შორის
ვიდეო: მიხეილ ჯავახიშვილი - "ჯაყოს ხიზნები" - აუდიო წიგნი 2024, ნოემბერი
Anonim

ასამბლე vs DLL

ბიბლიოთეკა არის რესურსების კოლექცია, რომელიც შეიძლება გამოყენებულ იქნას აპლიკაციების შესაქმნელად. ბიბლიოთეკა ჩვეულებრივ შედგება ქვეპროგრამებისგან, ფუნქციებისგან, კლასებისგან, მნიშვნელობებისა და ტიპებისგან. დაკავშირების პროცესის დროს (ჩვეულებრივ კეთდება ლინკერის მიერ), ბიბლიოთეკები და შესრულებადი ფაილები ერთმანეთს მიმართავენ. DLL ფაილები არის ბიბლიოთეკის ფაილები, რომლებიც დაკავშირებულია დინამიურად. DLL შეიქმნა Microsoft-ის მიერ. მაგრამ DLL ფაილებთან დაკავშირებული პრობლემების გამო, Microsoft-მა გამოუშვა ასამბლეის ფაილის ფორმატი (. NET Framework-ით). ასამბლეის ფაილები ფიზიკურად ძალიან ჰგავს DLL-ებს, მაგრამ მათ აქვთ მრავალი შიდა განსხვავება.

რა არის DLL?

Dynamic Link Library (უფრო საყოველთაოდ ცნობილი როგორც DLL) არის Microsoft-ის მიერ შემუშავებული საერთო ბიბლიოთეკის იმპლემენტაცია. ის იყენებს.dll,.ocx ან.drv გაფართოებებს და ისინი გამოიყენება Microsoft Windows და OS/2 ოპერაციულ სისტემებში..dll გამოიყენება ჩვეულებრივი DLL ფაილებით. და.ocx გაფართოება გამოიყენება ბიბლიოთეკების მიერ, რომლებიც შეიცავს ActiveX კონტროლს და.drv გაფართოება გამოიყენება ძველი სისტემის დრაივერის ფაილებით. DLL ფაილის ფორმატი იგივეა, რაც Windows EXE ფაილები (პორტატული შესრულებადი ფაილები 32-ბიტიან/64-ბიტიან Windows-ზე და ახალი შესრულებადი 16-ბიტიან Windows-ზე). ამიტომ, კოდის, მონაცემთა და რესურსების ნებისმიერი კომბინაცია შეიძლება შეიცავდეს DLL ფაილებში (ისევე, როგორც EXE ფაილებში). ფაქტიურად, მონაცემთა ფაილებს DLL ფაილის ფორმატით ეწოდება რესურსების DLL. ხატულათა ბიბლიოთეკები (.icl გაფართოებით) და შრიფტის ფაილები (.fon და.fot გაფართოებებით) რესურსების DLL-ების მაგალითებია.

კომპონენტები, რომლებსაც სექციები ეწოდება, ქმნიან DLL-ს და თითოეულ განყოფილებას აქვს საკუთარი ატრიბუტები, როგორიცაა მხოლოდ წაკითხვადი/ჩასაწერი და შესრულებადი/არა შესრულებადი.კოდის სექციები შესრულებადია, ხოლო მონაცემთა სექციები არა შესრულებადი. კოდის სექციები გაზიარებულია და მონაცემთა სექციები პირადია. ეს ნიშნავს, რომ ყველა პროცესი, რომელიც იყენებს DLL-ს, გამოიყენებს კოდის ერთსა და იმავე ასლს, ხოლო თითოეულ პროცესს ექნება მონაცემთა საკუთარი ასლი. Windows-ისთვის პირველადი დინამიური ბიბლიოთეკა არის kernel32.dll, რომელიც შეიცავს Windows-ის საბაზისო ფუნქციებს (ფაილი და მეხსიერებასთან დაკავშირებული ფუნქციები). COM (კომპონენტური ობიექტის მოდელი) არის DLL-ის გაფართოება OOP-ზე (ობიექტზე ორიენტირებული პროგრამირება). ჩვეულებრივი DLL უფრო ადვილი გამოსაყენებელია, ვიდრე COM ფაილები.

რა არის ასამბლეა?

ასამბლეის ფაილები შემოიღო Microsoft-მა DLL ფაილებთან დაკავშირებული რამდენიმე პრობლემის გადასაჭრელად. ასამბლეის ფაილები დაინერგა Microsoft. NET Framework-ით. ფუნქციონირების შესრულებადი ლოგიკური ერთეული ეწოდება ასამბლეას. ასამბლეები შესრულებადია. NET CLR (Common Language Runtime) ქვეშ. ფიზიკურად, ასამბლეები არსებობს როგორც EXE ან DLL ფაილები. მაგრამ, ისინი ძალიან განსხვავდებიან Microsoft Win32 DLL-ებისგან, შინაგანად.ასამბლეის ფაილი შედგება მანიფესტის, მეტამონაცემების, MISL (Microsoft Intermediate Language კოდი) და სხვა რესურსებისგან. შეკრება თვითაღწერია. მანიფესტი შეიცავს ისეთ ინფორმაციას, როგორიცაა სახელი, ვერსია, კულტურა, ძლიერი სახელი, ფაილების სია, ტიპები და დამოკიდებულებები. MISL კოდი შესრულებულია CLR-ის საშუალებით (მისი პირდაპირ შესრულება შეუძლებელია).

რა განსხვავებაა ასამბლეასა და DLL-ს შორის?

DLL არის დინამიურად დაკავშირებული ბიბლიოთეკა. მიუხედავად იმისა, რომ ასამბლეები ფიზიკურად ტოლია DLL-ებთან, ისინი ძალიან განსხვავდებიან შინაგანად. შეუძლებელია DLL-ების სიმრავლეს შორის თანმიმდევრულობის შენარჩუნება, მაგრამ CLR-ს შეუძლია შეინარჩუნოს თანმიმდევრულობა ასამბლეათა სიმრავლეს შორის, რადგან ასამბლეები თვითაღწერია (ისინი შეიცავს შინაგანად დამოკიდებულების ჩამონათვალს). DLL-ებისგან განსხვავებით, ვერსიების შესახებ ინფორმაცია იძულებულია ასამბლეებისთვის (CLR-ის მიერ). გვერდიგვერდ განლაგება (სხვადასხვა აპლიკაციები სხვადასხვა ვერსიების გამოყენებით) შესაძლებელია შეკრებებით.

გირჩევთ: