Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Возможности Динамических библиотек в Delphi |

10.08.2009, 02:59
|
|
Новичок
Регистрация: 09.09.2008
Сообщений: 12
Провел на форуме: 26673
Репутация:
16
|
|
Возможности Динамических библиотек в Delphi
Нужны ответы на следующие вопросы:
Во первых. - что можно сделать в .dll каким функционалом можно обеспечить?
Во вторых - поддерживают .dll ли написанные на delphi различные компоненты этой же среды разработки например работы с сетевыми протоколами?
Что мне нужно:мне нужно чтобы .dll распаковывалась а затем подгружалась из некоторой программы, и выполняла функции мониторинга системы, с реализацией клиента серверной технологии.
Возможно ли такое? каковы ограничения динамических библиотек относительно обыкновенных исполняемых файлов.
Если неправильно поставил вопрос поправьте, !НЕ ФЛУДИТЕ! !НЕ ЗАНИМАЙТЕСЬ ТРОЛЛИНГОМ! !АФФТАРАМ рекомендуется воздержатся от ответа.
|
|
|

10.08.2009, 03:31
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
никаких особых ограничений нет. все что перечислил - возможно
|
|
|

10.08.2009, 04:33
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
Я Тролль.
Вообще все, что спросил читается по первым спискам выдачи гугла...
Так что это тупость...
|
|
|

10.08.2009, 08:23
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
Вообще в DLL можно всё. Т.е. она может быть и хранилищем ресурсов, и форму в себе содержать и код программы. Другими словами DLL по функционалу чаще всего имеет больше преимуществ чем обычная прога за исключением ряда моментов:
1) DLL сама по себе не может работать, только в контексте какого либо приложения. т.е. DLL ты не можеш запустить как обычную прогу, её необходимо подгружать в уже запущенную прогу (ну или она автоматом подгрузится если есть импорт из неё.)
2) После завершения работы проги, DLL тоже будет выгружена
Зато плюсов очень много:
1) DLL можно подружать во все GUI процессы посредством ключика в реестре
2) DLL можно юзать для глобальных хуков(собственно говоря - это единственный документированный метод)
3) DLL можно выгрузить в любой момент и загрузить обратно.
4) довольно простой метод определения состояния работы с DLL посредством значения параметров вызова точки входа
DLL_PROCESS_ATTACH - Программа подключается к DLL
DLL_THREAD_ATTACH - Поток программы подключается к DLL
DLL_THREAD_DETACH - Поток "оставляет" DLL
DLL_PROCESS_DETACH - Exe "отсоединяется" от DLL
Но вообще за исключением хуков итд итп DLL желательно использовать только в следующих случаях:
1) расширение функционала проги, который ранее не был предусмотрен в ней - банальный плагины
2) если набор одних и тех же процедур и функций используется в нескольких прогах. То их легче вынести в одну DLL а не вкомпилировать в обе проги
3) Для большей структуризации проекта, когда много очень кода, то функции группировать по функционалу в отдельные модули которые и будут предствалять из себя DLL. очень полезно при больших проектах. Тем более что при обнаружении ошибки для исправления достаточно исправить только одну DLL а не весь проект.
|
|
|

10.08.2009, 15:34
|
|
Новичок
Регистрация: 09.09.2008
Сообщений: 12
Провел на форуме: 26673
Репутация:
16
|
|
Сообщение от slesh
Вообще в DLL можно всё. Т.е. она может быть и хранилищем ресурсов, и форму в себе содержать и код программы. Другими словами DLL по функционалу чаще всего имеет больше преимуществ чем обычная прога за исключением ряда моментов:
1) DLL сама по себе не может работать, только в контексте какого либо приложения. т.е. DLL ты не можеш запустить как обычную прогу, её необходимо подгружать в уже запущенную прогу (ну или она автоматом подгрузится если есть импорт из неё.)
2) После завершения работы проги, DLL тоже будет выгружена
Зато плюсов очень много:
1) DLL можно подружать во все GUI процессы посредством ключика в реестре
2) DLL можно юзать для глобальных хуков(собственно говоря - это единственный документированный метод)
3) DLL можно выгрузить в любой момент и загрузить обратно.
4) довольно простой метод определения состояния работы с DLL посредством значения параметров вызова точки входа
DLL_PROCESS_ATTACH - Программа подключается к DLL
DLL_THREAD_ATTACH - Поток программы подключается к DLL
DLL_THREAD_DETACH - Поток "оставляет" DLL
DLL_PROCESS_DETACH - Exe "отсоединяется" от DLL
Но вообще за исключением хуков итд итп DLL желательно использовать только в следующих случаях:
1) расширение функционала проги, который ранее не был предусмотрен в ней - банальный плагины
2) если набор одних и тех же процедур и функций используется в нескольких прогах. То их легче вынести в одну DLL а не вкомпилировать в обе проги
3) Для большей структуризации проекта, когда много очень кода, то функции группировать по функционалу в отдельные модули которые и будут предствалять из себя DLL. очень полезно при больших проектах. Тем более что при обнаружении ошибки для исправления достаточно исправить только одну DLL а не весь проект.
Моя идея заключается в том что !Весь! функционал заключается именно в .dll, поскольку я не имею доступа к исходному коду приложения.
Спасибо за ответы(Троль Изыйди!!!)))
|
|
|

11.08.2009, 13:17
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
Сообщение от dzumohu4
Нужны ответы на следующие вопросы:
Во первых. - что можно сделать в .dll каким функционалом можно обеспечить?
Во вторых - поддерживают .dll ли написанные на delphi различные компоненты этой же среды разработки например работы с сетевыми протоколами?
Что мне нужно:мне нужно чтобы .dll распаковывалась а затем подгружалась из некоторой программы, и выполняла функции мониторинга системы, с реализацией клиента серверной технологии.
Возможно ли такое? каковы ограничения динамических библиотек относительно обыкновенных исполняемых файлов.
Если неправильно поставил вопрос поправьте, !НЕ ФЛУДИТЕ! !НЕ ЗАНИМАЙТЕСЬ ТРОЛЛИНГОМ! !АФФТАРАМ рекомендуется воздержатся от ответа.
тебе бы сперва книжку почитать...
|
|
|

11.08.2009, 13:21
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
товарищи модеры, предлагаю такие темы сразу сносить или перекидывать в раздел для новичков, поскольку незная ничего и спрашивая о чемто конкретном подобные ТСы тока генерят кучу ненужных постов, среди которых довольно полезные темы просто тонут.
|
|
|

11.08.2009, 13:58
|
|
Познающий
Регистрация: 17.07.2009
Сообщений: 47
Провел на форуме: 131272
Репутация:
4
|
|
доступно...
В DLL можно хранить помоему всё что угодно... dll ка это та же прога, только она сама не запускается, а ты её чем нить запускаешь (подгружаешь и юзаешь)...
Можно хранить наборы процедур/функций, файлы ресурсов (это уже по res файлам смотри), хранить эм... да всё... формы, картинки, курсоры, иконки...
На дельфи, как и помоему на других языках программирования с dll ками можно работать поразному, можно сразу весь набор подгрузить и все они будут хавать ресурсы системы, вне зависимости от того, юзается дллка или нет, или же можно подгружать все это дело динамически, что немного сложнее, но намного интереснее 
Динамическая загрузка библиотек позволит использовать библиотеку тогда и только тогда, когда твоей проге что то от неё нужно, иначе она отключается, и лежит себе мёртвым грузом...
Кстати, не нашёл тут чб об этом сообщилось...
dll ка написанная на delphi 7 не подгрузится под RAD STUDIO 2009, в том же типо дельфи... и наоборот, если dll с тем же кодом откомпилировать на Rad Studio 2009 и попытаться подгрузить её в приложении откомпилированом в delphi 7, то она тупо не грузится...
Помнится пришлось оч сильно заморочится, перекомпилируя все библиотеки, которые нужно было подгрузить на Rad Studio 2009...
Так что имей в виду, что если накачаешься библиотек и будешь грузить их, то лучше искать с сорцами и все библиотеки перекомпилировать...
Попытался всё объяснить доступным языком... если что не понял, пиши...
|
|
|

12.08.2009, 17:31
|
|
Новичок
Регистрация: 09.09.2008
Сообщений: 12
Провел на форуме: 26673
Репутация:
16
|
|
Не я подгружаю через Lord Pe с указанием Оригинальной точки входа DllEntryPoint.
Насчёт ущербности темы, да может показаться что вопрос я задал ребяческий, насчёт сферы применения, !не спорьте мне лучше знать куда что совать!(Ясен перец что сигарету в рот но речь не об этом).
Гугля я находил лишь ответы вроде того какой красивый сыр, а вот конкретных примеров реализации на определённом языке - увы.
Хороший, развёрнутый ответ дал slesh, за что ему плюс к репе, show показал то насколько он не уважает меня лично и всех кто задаёт вопросы впринципе.Как ни странно на твоей репе show это никаким образом не отразится.
mr. ZetRikS рассказал про то какое "масло масляное" дал пару полезных советов, за что получает благодарность в виде + к репутации.
Всем адекватным спасибо.
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Скачать Delphi 7, помощь.
|
_casper_ |
С/С++, C#, Delphi, .NET, Asm |
20 |
08.12.2009 04:54 |
|
Пишем Jabber-клиент на Delphi
|
lytgeygen |
Статьи |
5 |
07.06.2009 01:45 |
|
Интересные вопросы по Delphi и не только
|
CeHoKoC |
С/С++, C#, Delphi, .NET, Asm |
4 |
20.04.2009 10:33 |
|
[статья] Решаем судоку на delphi
|
crystalbit |
С/С++, C#, Delphi, .NET, Asm |
2 |
31.03.2009 16:17 |
|
Семинар "Рекламные возможности Яндекса" / Краснодар / Итоги
|
Liar |
SЕО - тонкости, методы раскрутки |
2 |
21.03.2009 13:55 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|