Տարբերություն DLL-ի և LIB-ի միջև

Տարբերություն DLL-ի և LIB-ի միջև
Տարբերություն DLL-ի և LIB-ի միջև

Video: Տարբերություն DLL-ի և LIB-ի միջև

Video: Տարբերություն DLL-ի և LIB-ի միջև
Video: Արդյոք գիտես տարբերությունը Զույգերի և երկվորյակների միջև 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-ները:

Խորհուրդ ենք տալիս: