Ассамблея менен DLL ортосундагы айырма

Ассамблея менен DLL ортосундагы айырма
Ассамблея менен DLL ортосундагы айырма

Video: Ассамблея менен DLL ортосундагы айырма

Video: Ассамблея менен DLL ортосундагы айырма
Video: Новый гала-турнир по фигурному катанию "RUSSIAN CHALLENGE" ⚡️Загитова, Медведева, Валиева, Щербакова 2024, Июль
Anonim

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

Китепкана бул колдонмолорду иштеп чыгуу үчүн колдонула турган ресурстардын жыйындысы. Китепкана көбүнчө подпрограммалардан, функциялардан, класстардан, баалуулуктардан жана типтерден турат. Байланыш процессинде (көбүнчө шилтеме берүүчү тарабынан аткарылат) китепканалар жана аткарылуучу файлдар бири-бирине шилтеме жасашат. DLL файлдары динамикалык түрдө байланышкан китепкана файлдары. DLL Microsoft тарабынан иштелип чыккан. Бирок DLL файлдарындагы кээ бир көйгөйлөрдөн улам, Microsoft Ассамблея файл форматын (. NET алкагы менен) ойлоп тапты. Ассамблея файлдары физикалык жактан 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 (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 тарабынан) аткарылат. Жанаша жайгаштыруу (ар кандай версияларды колдонгон ар кандай колдонмолор) ассамблеялар менен мүмкүн.

Сунушталууда: