DLL және LIB арасындағы айырмашылық

DLL және LIB арасындағы айырмашылық
DLL және LIB арасындағы айырмашылық

Бейне: DLL және LIB арасындағы айырмашылық

Бейне: DLL және LIB арасындағы айырмашылық
Бейне: DevOps инженеріне қатысты 30 ақымақ сұрақ [IT мансап] 2024, Шілде
Anonim

DLL және LIB

Кітапхана – қолданбаларды әзірлеу үшін пайдалануға болатын ресурстар жинағы. Кітапхана әдетте ішкі бағдарламалардан, функциялардан, сыныптардан, мәндерден және түрлерден тұрады. Байланыстыру процесі кезінде (әдетте сілтеме жасаушы арқылы орындалады) кітапханалар мен орындалатын файлдар бір-біріне сілтеме жасайды. Кітапхана файлдары ішкі бағдарламалардың мақсатты қолданбаға жүктелу уақытына байланысты статикалық және динамикалық кітапханаларға бөлінеді. Сәйкесінше, LIB файлдары статикалық байланысқан кітапханалар және 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 файлдарына қарағанда оңай.

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

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

DLL және LIB арасындағы айырмашылық неде?

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

Ұсынылған: