У чым розніца паміж DLL, бібліятэчным файлам і загалоўкам?


адказ 1:

Файл загалоўка - просты тэкст. Вы б выкарыстоўвалі кампілятар для кампіляцыі ў аб'ектныя файлы.

Файл бібліятэкі складаецца з кода, які аб'ядноўваецца ў выглядзе групы аб'ектных файлаў у адзін файл бібліятэкі. Яны становяцца часткай канчатковага прадукту, як толькі злучальнік пачынае злучаць усё.

DLL - гэта завершаны праект, які цалкам кампілюецца і гатовы да запуску. Ён проста не выконваецца непасрэдна, але залежыць ад іншых праектаў для яго доступу.

Выканаўчыя файлы спачатку павінны складаць загалоўкі, спачатку звязваць бібліятэкі, але могуць запускаць DLL непасрэдна ...


адказ 2:

DLL - гэта бібліятэка, якая дынамічна загружаецца. Гэта пэўны тып файла ў MS Windows, які прыкладанне можа выкарыстоўваць для загрузкі бібліятэкі падчас выканання.

Файл бібліятэкі - гэта проста агульны тэрмін для некалькіх розных тыпаў бінарных файлаў у розных аперацыйных сістэмах, у тым ліку .so ці файл ELF у Linux, .dll у Windows і .dylib на MacOS і іншыя. Усе гэтыя файлы - гэта бібліятэкі, даступныя прыкладанням, якія працуюць у сістэме. Файл загалоўка - гэта тэкставы файл у сістэме распрацоўкі, які можа быць выкарыстаны для апісання змесціва бібліятэкі, каб кампілятар мог падрыхтаваць згенераваны код, так што прыкладанне можа выкарыстоўваць адпаведную бібліятэку. Файлы загалоўкаў найбольш часта звязаны з мовамі C / C ++.


адказ 3:

У чым розніца паміж DLL, бібліятэчным файлам і загалоўкам?

DLL расшыфроўваецца як Shared Library у сістэме Windows і называецца Dynamic Link Library. Агульная бібліятэка - гэта бібліятэка, якая не звязана з выкананым файлам. Замест гэтага ў праграме ёсць заглушка, з якой бібліятэка загружаецца падчас выканання. У гэтага ёсць тры перавагі:

  1. Кожны выкананы файл, на які спасылаецца пэўная бібліятэка, меншы, дазваляе эканоміць прастору на дыску, памер загрузкі і г. д. Код бібліятэкі можна падзяляць паміж працэсамі падчас выканання, зніжаючы выкарыстанне памяці пры звароце да некалькіх праграм. Агульныя бібліятэкі можна абнаўляць незалежна ад выкананых файлаў, якія яны выкарыстоўваюць, пакуль карыстацкі інтэрфейс не мяняецца.

Файл бібліятэкі можа быць альбо DLL (альбо агульным аб'ектам у сістэмах Unix / Linux), альбо статычнай бібліятэкай. Статычныя бібліятэкі інтэгруюцца ў выкананыя праграмы, якія іх выкарыстоўваюць. Гэта значыць, код, які яны выкарыстоўваюць з бібліятэкі, скапіруецца ў выкананы файл пры яго стварэнні.

Файл загалоўка - гэта файл з кодам C або C ++. Вы можаце змясціць любы код у створаныя вамі загалоўкі, але яны звычайна ўтрымліваюць дэкларацыі, а не рэалізацыі. Гэтая лінія перасякаецца для ўбудаваных функцый і шаблонаў у C ++. У адваротным выпадку варта прытрымлівацца дэкларацый, але не азначэнняў у файлах загалоўкаў. Яны дазваляюць паставіць дэкларацыі ў адно месца, каб увесь код, які выкарыстоўвае пэўныя функцыі, мог выкарыстоўваць аднолькавыя дэкларацыі, а не капіяваць іх у кожны файл, у якім яны выкарыстоўваюцца.