Ассамблея мен DLL арасындағы айырмашылық

Ассамблея мен DLL арасындағы айырмашылық
Ассамблея мен DLL арасындағы айырмашылық

Бейне: Ассамблея мен DLL арасындағы айырмашылық

Бейне: Ассамблея мен DLL арасындағы айырмашылық
Бейне: 35G. Charpente, Finition brossées des pannes partie 2 (sous-titrée) 2024, Шілде
Anonim

Ассамблея және DLL

Кітапхана – қолданбаларды әзірлеу үшін пайдалануға болатын ресурстар жинағы. Кітапхана әдетте ішкі бағдарламалардан, функциялардан, сыныптардан, мәндерден және түрлерден тұрады. Байланыстыру процесі кезінде (әдетте сілтеме жасаушы арқылы орындалады) кітапханалар мен орындалатын файлдар бір-біріне сілтеме жасайды. DLL файлдары динамикалық түрде байланысқан кітапхана файлдары болып табылады. DLL файлын Microsoft жасаған. Бірақ DLL файлдарында кездесетін кейбір мәселелерге байланысты Microsoft Assembly файл пішімін (. NET негізімен) ойлап тапты. Жинақ файлдары физикалық жағынан DLL файлдарына өте ұқсас, бірақ олардың ішкі айырмашылықтары көп.

DLL дегеніміз не?

Динамикалық сілтемелер кітапханасы (көбінесе 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 (Component Object Model) – DLL файлының OOP (объектіге бағытталған бағдарламалау) кеңейтімі. Кәдімгі DLL файлдарын пайдалану COM файлдарына қарағанда оңай.

Ассамблея дегеніміз не?

Assembly файлдарын Microsoft корпорациясы DLL файлдарында кездесетін бірнеше мәселені шешу үшін енгізді. Жинақ файлдары Microsoft. NET фреймворкімен таныстырылды. Функционалдықтың орындалатын логикалық бірлігі Ассамблея деп аталады. Ассамблеялар. NET CLR (Common Language Runtime) астында орындалады. Физикалық түрде жинақтар EXE немесе DLL файлдары ретінде болады. Бірақ олар Microsoft Win32 DLL-ден ішкі жағынан өте ерекшеленеді. Жинақ файлы манифест, метадеректер, MISL (Microsoft Intermediate Language коды) және басқа ресурстардан тұрады. Ассамблея өзін-өзі сипаттайды. Манифестте атау, нұсқа, мәдениет, күшті атау, файлдар тізімі, түрлер мен тәуелділіктер сияқты ақпарат бар. MISL коды CLR арқылы орындалады (оны тікелей орындау мүмкін емес).

Ассамблея мен DLL арасындағы айырмашылық неде?

DLL – динамикалық байланыстырылған кітапхана. Жинақтар физикалық түрде DLL-ге тең болса да, олар ішкі жағынан өте ерекшеленеді. DLL жиынтығы арасындағы сәйкестікті сақтау мүмкін емес, бірақ CLR жинақтар жиыны арасындағы сәйкестікті сақтай алады, себебі жинақтар өздігінен сипатталады (олар ішкі тәуелділіктер тізімін қамтиды). DLL файлдарынан айырмашылығы, нұсқалар туралы ақпарат жинақтар үшін (CLR арқылы) орындалады. Жиындармен қатар орналастыру (әртүрлі нұсқаларды пайдаланатын әртүрлі қолданбалар) мүмкін.

Ұсынылған: