Главная страница
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.009 c
2-1260321681
cosinus
2009-12-09 04:21
2010.03.07
Как из видеофайла получить кодек, которым он сжат?


15-1261410094
Piter
2009-12-21 18:41
2010.03.07
Гарантийная замена мыши - просто отлично!


15-1261400337
@!!ex
2009-12-21 15:58
2010.03.07
Как заставить приложение работать с Кирелическим набором символов


2-1261744100
Who_is_you?
2009-12-25 15:28
2010.03.07
Процедура прерывания. В Delphi 7 pointer ?


2-1262771765
webpauk
2010-01-06 12:56
2010.03.07
Буфер обмена