Форум: "Прочее";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c