3 / 3 / 2
Регистрация: 04.07.2015
Сообщений: 187
1

DLL. Их создание и полезность

02.12.2016, 19:20. Показов 926. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я слышал краем уха, что DLL это та же библиотека, только поддерживающая динамическое связывание. То есть если нам в каком-то участке кода нужна некая функция, то её можно загрузить из длл и пользоваться ею. Вопрос в том, а зачем это нужно? Ведь нужно знать имя функции, нужно знать что она делает, но она уже скомпилирована. По мне такой подход несколько усложняет сам процесс программирования, или нет? Объясните преимущества ДЛЛ перед обычной lib и расскажите есть ли некие функции обертки для простого создания dll библиотек
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2016, 19:20
Ответы с готовыми решениями:

Пожалуйста очень срочно нужно написать программу, определяющую полезность веб-страниц.
Нужно написать программу, определяющую полезность веб страниц. Необходимо список ссылок ввести в...

Создание .dll и присоеденение .dll к проекту путем непосредственного написания кода
Здравствуйте, дорогие форумчане! Я прекрасно знаю, как создавать и прикреплять к проекту .dll файлы...

Создание dll на C++ и вызов метода dll из C#.
Народ, может кто-нибудь выложить конкретный пример, как это сделать? Например есть же нативная...

полезность алгоритмов
народ помогите разобраться. есть 2 массива разных структур. их надо сравнить по одному из полей...

4
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
02.12.2016, 19:27 2
Цитата Сообщение от Sinkha Посмотреть сообщение
Вопрос в том, а зачем это нужно?
Затем, чтобы несколько программ использовали одну общую dll. Правда, нормального пакетного менеджера в Винду вроде бы так и не завезли, так что каждый дистрибутив один фиг потащит персональные копии любых сколько-то нестандартных dll. В этом случае особого смысла в dll действительно нет.
1
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
02.12.2016, 19:28 3
del
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
02.12.2016, 19:53 4
Лучший ответ Сообщение было отмечено ValeryS как решение

Решение

Цитата Сообщение от Sinkha Посмотреть сообщение
Вопрос в том, а зачем это нужно? Ведь нужно знать имя функции, нужно знать что она делает, но она уже скомпилирована. По мне такой подход несколько усложняет сам процесс программирования, или нет? Объясните преимущества ДЛЛ перед обычной lib
Во-первых, dll помогает устранять дублирование.
Представь, что ты пишешь набор полезных утилит, в каждой из которых используется
один и тот же код - такой код полезно будет вынести в отдельную dll.
А с lib ты получишь разбухание, т.е. каждая утилита будет хранить свою копию
одного и того же кода.

Во-вторых, dll можно свободно загружать, когда они нужны, и выгружать, когда нет.
Это очень удобно. Без dll практически невозможно реализовать системы плагинов,
которые так популярны в некоторых программах. И какой смысл, например, держать в
памяти большой кусок кода, если он нужен лишь в определенные (предположим, что редкие)
моменты? Логичнее ведь загрузить dll, попросить ее сделать нужную работу и выгрузить.

В-третьих, dll позволяет максимально изолировать логически не связанные друг с
другом компоненты программы, особенно когда их пишут разные разработчики, на
разных языках программирования... Можно начать с того, что lib - это формат,
который понимают только определенные компиляторы и он несовместим даже между
разными версиями одного и того же компилятора. А dll умеют загружать
практически все.

В-четвертых, dll дает более широкие возможности для ускорения сборки,
упрощения отладки и сопровождения проекта. Например, поменяли что-то в исходниках -
не обязательно собирать весь проект, можно пересобрать только одну dll.
Надо проверить какое-то исправление или патч - поменяли dll на компьютере и готово.
И т.д. С lib тебе пришлось бы оперировать гораздо более крупной "единицей измерения",
т.е. пересобирать и таскать весь исполняемый файл целиком.

Так что у dll, несомненно, определенные преимущества все-таки есть.
2
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
02.12.2016, 21:02 5
Цитата Сообщение от Sinkha Посмотреть сообщение
а зачем это нужно?
В первую очередь, для предоставления сервисов самой OS. Например, в Win32, программа не загрузится без вызова kernel32.dll. Следуя вашей логике, код OS следовало бы линковать с каждой прикладной программой.
0
02.12.2016, 21:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2016, 21:02
Помогаю со студенческими работами здесь

Полезность курсов
Скажите кто-нибудь проходил курсы по html/css, php/sql? Интересует в первую очередь полезность....

Полезность заготовок?
Всем доброго дня и здоровья во все органы!!! :) Опять практически скоропостижно вскочил насущный...

новизна и полезность сайта
Если у Бегуна, AdSense, Яндекс.Директа и т.п., допустим, крутят его контекстную рекламу 1000 досок...

Как определить полезность купленной морды?
В прошлом месяце я накупил кучу морд, а теперь нужно либо продлевать оплату либо искать другие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru