Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.07;
Скачать: CL | DM;

Вниз

dll в компоненте. За и против?   Найти похожие ветки 

 
zorik ©   (2009-12-22 10:42) [0]

Использование функций из dll в компоненте? Хорошо это или плохо?

Раньше у меня был модуль с функциями експорта-импорта в ексель. Со временем сделал из него dll чтоб не запариватся и не перекомпилировать все проэкты. Но, некоторые, разработаные мной, компоненты тоже использовали этот модуль. Вопрос, можно ли использовать в компонентах функции из длл и где держать длл, чтоб она была видна и в IDE и в скомпилированом проєкте. Мусорить в system32 не очень хочется


 
Медвежонок Пятачок ©   (2009-12-22 10:46) [1]

Вопрос, можно ли использовать в компонентах функции из длл

А как ты думаешь, где живут функции объявленные в windows.pas (и не только в нем)?

И могут ли классы компонентов юзать windows.pas и другие пасы?


 
Медвежонок Пятачок ©   (2009-12-22 10:48) [2]

и где держать длл, чтоб она была видна и в IDE и в скомпилированом проєкте. Мусорить в system32 не очень хочется

Мусори там где у тебя лежат *.bpl.
Или в любом другом месте, перечисленном в %path%


 
Mystic ©   (2009-12-22 15:48) [3]

Если не планируется использовать DLL под другие компиляторы, лучше сделать пакет (по сути та же DLL). И положить ее с остальными пакетами.


 
zorik ©   (2009-12-23 18:09) [4]

Я че-то натряпал. ДЛЛ подгружается динамически из внешней папки. ИДЕ ругается что не найдено, но компилится и работает.

[MyProjects]
 [DLL]
   a.dll
   b.dll
 [Project1]
   programma.exe - //использованы компоненты, которыэ динамически
      связываются с длл из папки "DLL"


 
ANB   (2009-12-23 18:12) [5]


> zorik ©   (23.12.09 18:09) [4]

См. Mystic ©   (22.12.09 15:48) [3] еще раз. Очень полезный совет. Особенно, если в длл собираешься работать с VCL.


 
Kerk ©   (2009-12-23 18:14) [6]


> ANB   (23.12.09 18:12) [5]
>
> > zorik ©   (23.12.09 18:09) [4]
>
> См. Mystic ©   (22.12.09 15:48) [3] еще раз. Очень полезный
> совет. Особенно, если в длл собираешься работать с VCL.

Этот мудрый совет одновременно и подводный камень. DLL можно использовать где угодно, а BPL только с той же версией VCL.


 
Медвежонок Пятачок ©   (2009-12-23 18:34) [7]

которыэ динамически связываются с длл из папки "DLL"

значит ты просто не умеешь грузить длл


 
Медвежонок Пятачок ©   (2009-12-23 18:47) [8]

ДЛЛ подгружается динамически из внешней папки. ИДЕ ругается что не найдено

ИДЕ не может ругаться на эти длл.
Либо они импортируются не динамически либо ругается не ИДЕ


 
zorik ©   (2009-12-24 09:57) [9]

1000 извенений, длл подключены статичести таким способом

procedure ExcCreate;         external "..//DLLs/ZExcel.dll" name "ExcCreate";


раньше было (структура папок с модулями моих компонентов - находятся даже на другом диске чем delphi, путь добавлен в library path):

[MyComponents]
 [DLLs] - известная папка с длл-ками
 [ZComponents]
   ... - модули компонента, в некоторых есть импорт функций из длл (см. выше)

При запуске Delphi IDE ругалось что файлы *.dll не найдено, соответсветнно некоторые компоненты не появлялись в палитре. Я открывал пакет с компонентами (папку с длл система уже видела), перекопилировал и инсталировал компоненты - они появлялись в палитре. Открывал проект и билдил - екзешка создавалась, все ок

Сейчас перенес папку DLLs в "\Program Files\Borland\Delphi7\Projects\"

[Program Files\Borland\Delphi7\Projects]
 [DLLs]
 [Bpl]
   MyPacked.bpl
   ...

Все ок, IDE не ругается, проект билдится

Структура файлов реализации готового проекта не изменилась:

[MyProjects]
[DLLs]
  a.dll
  b.dll
[Project1]
  programma.exe - //использованы компоненты, которыэ динамически
     связываются с длл из папки "DLL"


ВЫВОДЫ:
Всем спасибо, нужно быть повнимательней и немного почитать про IDE



Страницы: 1 вся ветка

Текущий архив: 2010.03.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
15-1261060246
Alkid
2009-12-17 17:30
2010.03.07
Кража импульса.


11-1213110210
!Pharaon!
2008-06-10 19:03
2010.03.07
Следующий элемент в List Box


6-1214280494
Василий
2008-06-24 08:08
2010.03.07
WebBrowser отображение объектов


2-1262071082
Who_is_you?
2009-12-29 10:18
2010.03.07
Чтение и запись в LPT в режиме Bidirection Win XP, Win98?


2-1262761116
Igor2100
2010-01-06 09:58
2010.03.07
Потоки+dll