3 / 3 / 2
Регистрация: 04.07.2015
Сообщений: 187
|
|
1 | |
DLL. Их создание и полезность02.12.2016, 19:20. Показов 926. Ответов 4
Метки нет (Все метки)
Я слышал краем уха, что DLL это та же библиотека, только поддерживающая динамическое связывание. То есть если нам в каком-то участке кода нужна некая функция, то её можно загрузить из длл и пользоваться ею. Вопрос в том, а зачем это нужно? Ведь нужно знать имя функции, нужно знать что она делает, но она уже скомпилирована. По мне такой подход несколько усложняет сам процесс программирования, или нет? Объясните преимущества ДЛЛ перед обычной lib и расскажите есть ли некие функции обертки для простого создания dll библиотек
0
|
02.12.2016, 19:20 | |
Ответы с готовыми решениями:
4
Пожалуйста очень срочно нужно написать программу, определяющую полезность веб-страниц. Создание .dll и присоеденение .dll к проекту путем непосредственного написания кода Создание dll на C++ и вызов метода dll из C#. полезность алгоритмов |
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
02.12.2016, 19:27 | 2 |
Затем, чтобы несколько программ использовали одну общую dll. Правда, нормального пакетного менеджера в Винду вроде бы так и не завезли, так что каждый дистрибутив один фиг потащит персональные копии любых сколько-то нестандартных dll. В этом случае особого смысла в dll действительно нет.
1
|
Ушел с форума
|
|
02.12.2016, 19:53 | 4 |
Сообщение было отмечено ValeryS как решение
Решение
Во-первых, dll помогает устранять дублирование.
Представь, что ты пишешь набор полезных утилит, в каждой из которых используется один и тот же код - такой код полезно будет вынести в отдельную dll. А с lib ты получишь разбухание, т.е. каждая утилита будет хранить свою копию одного и того же кода. Во-вторых, dll можно свободно загружать, когда они нужны, и выгружать, когда нет. Это очень удобно. Без dll практически невозможно реализовать системы плагинов, которые так популярны в некоторых программах. И какой смысл, например, держать в памяти большой кусок кода, если он нужен лишь в определенные (предположим, что редкие) моменты? Логичнее ведь загрузить dll, попросить ее сделать нужную работу и выгрузить. В-третьих, dll позволяет максимально изолировать логически не связанные друг с другом компоненты программы, особенно когда их пишут разные разработчики, на разных языках программирования... Можно начать с того, что lib - это формат, который понимают только определенные компиляторы и он несовместим даже между разными версиями одного и того же компилятора. А dll умеют загружать практически все. В-четвертых, dll дает более широкие возможности для ускорения сборки, упрощения отладки и сопровождения проекта. Например, поменяли что-то в исходниках - не обязательно собирать весь проект, можно пересобрать только одну dll. Надо проверить какое-то исправление или патч - поменяли dll на компьютере и готово. И т.д. С lib тебе пришлось бы оперировать гораздо более крупной "единицей измерения", т.е. пересобирать и таскать весь исполняемый файл целиком. Так что у dll, несомненно, определенные преимущества все-таки есть.
2
|
02.12.2016, 21:02 | 5 |
В первую очередь, для предоставления сервисов самой OS. Например, в Win32, программа не загрузится без вызова kernel32.dll. Следуя вашей логике, код OS следовало бы линковать с каждой прикладной программой.
0
|
02.12.2016, 21:02 | |
02.12.2016, 21:02 | |
Помогаю со студенческими работами здесь
5
Полезность курсов Полезность заготовок? новизна и полезность сайта Как определить полезность купленной морды? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |