Різниця між DLL та LIB

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.