Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.48 MB
Время: 0.009 c
15-1261503380
xayam
2009-12-22 20:36
2010.03.07
Когда истина зависит от терминологии - часть 2


2-1261834445
Токи
2009-12-26 16:34
2010.03.07
Проблема с БД на парадоксе


15-1261517422
Юрий
2009-12-23 00:30
2010.03.07
С днем рождения ! 23 декабря 2009 среда


1-1239268291
sniknik
2009-04-09 13:11
2010.03.07
Ошибка преобразования RTF в PlainText через TRichEdit


2-1262766605
Pavel
2010-01-06 11:30
2010.03.07
Расположекние PaintBox на переднем плане





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский