какие-то глюки с динамическими библиотеками

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

какие-то глюки с динамическими библиотеками

Сообщение RusDeveloper » 20.06.2016 13:25:52

Создал динамическую библиотеку, добавил в проект файл fuexport.pas:
Код: Выделить всё
library test_dll;

{$mode objfpc}{$H+}

uses
  Classes, fuexport
  { you can add units after this };

begin

end.

и (тут только добавил зависимость от Dialogs):
Код: Выделить всё
unit fuexport;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Dialogs;

implementation

end.

все компилируется без ошибок, но если добавить зависимость проекта с пакетом LCL, то получаю кучу ошибок:
Компиляция проекта, цель: test_dll.dll: Код завершения 1, ошибок: 49
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomImageList
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterMenuItem
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterMenu
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterMainMenu
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterPopupMenu
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterDragImageList
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterLazAccessibleObject
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterControl
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterWinControl
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterGraphicControl
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomControl
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterScrollingWinControl
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterScrollBox
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomFrame
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomForm
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterHintWindow
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomScrollBar
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomGroupBox
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomComboBox
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomListBox
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomEdit
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomMemo
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterButtonControl
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomButton
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomCheckBox
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterToggleBox
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterRadioButton
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomStaticText
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomLabel
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomBitBtn
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomSpeedButton
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterShape
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomSplitter
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterPaintBox
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomImage
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterBevel
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomRadioGroup
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomCheckGroup
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomLabeledEdit
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomPanel
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCustomTrayIcon
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterCommonDialog
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterFileDialog
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterOpenDialog
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterSaveDialog
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterSelectDirectoryDialog
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterColorDialog
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterColorButton
test_dll.lpr(11,1) Error: Undefined symbol: WSRegisterFontDialog


что это?
RusDeveloper
новенький
 
Сообщения: 92
Зарегистрирован: 06.04.2016 12:02:43

Re: какие-то глюки с динамическими библиотеками

Сообщение Лекс Айрин » 20.06.2016 13:47:29

ну это как бы старый глюк и не раз всплывал -- формы нельзя загнать в DLL
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: какие-то глюки с динамическими библиотеками

Сообщение RusDeveloper » 20.06.2016 14:46:10

и как это лечится?
RusDeveloper
новенький
 
Сообщения: 92
Зарегистрирован: 06.04.2016 12:02:43

Re: какие-то глюки с динамическими библиотеками

Сообщение Лекс Айрин » 20.06.2016 15:08:59

никак.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: какие-то глюки с динамическими библиотеками

Сообщение RusDeveloper » 20.06.2016 15:18:29

я в дллку не смогу засунуть форму??? а как же сложные приложения с кучей форм?
RusDeveloper
новенький
 
Сообщения: 92
Зарегистрирован: 06.04.2016 12:02:43

Re: какие-то глюки с динамическими библиотеками

Сообщение Лекс Айрин » 20.06.2016 15:29:38

а никак. Все формы в экзешнике, а в Dll код не связанный с формами.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: какие-то глюки с динамическими библиотеками

Сообщение pupsik » 20.06.2016 15:39:07

формы нельзя загнать в DLL
неужели????
Да же на этом форуме мелькали примеры. В т.ч. как загрузить форму на панель.
Посмотрите, может чем то поможет: http://wiki.lazarus.freepascal.org/Creating_LCL_Control_From_Libraries

п.с.
Вот выгоды использования формы в длл мало. Поэтому формы и не грузят из длл. Хотя всё зависит от задачи.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: какие-то глюки с динамическими библиотеками

Сообщение Лекс Айрин » 20.06.2016 16:47:58

pupsik, значит, динамически создаваемые все же можно...
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: какие-то глюки с динамическими библиотеками

Сообщение pupsik » 20.06.2016 19:36:00

Лекс Айрин и не только динамически. Для примера: https://github.com/bgarrels/lazarus-br "lazarus-br/misc/DynLibForm/Source/".
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: какие-то глюки с динамическими библиотеками

Сообщение Лекс Айрин » 20.06.2016 19:38:02

pupsik что ж... признаю, что неправ.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: какие-то глюки с динамическими библиотеками

Сообщение AlphaBlend » 20.06.2016 22:35:38

вот у меня такая же проблема . формочки хотелось в .so положить , но столько трудностей при этом ... :shock:

Добавлено спустя 1 минуту 8 секунд:
есть выход . Длинный , многотекстовый и от этого хлопотный : Формы объявлять в исполняемом файле , а обвешивать их функциями и процедурами по возможности из библиотек... :shock:
Аватара пользователя
AlphaBlend
постоялец
 
Сообщения: 207
Зарегистрирован: 22.05.2016 10:13:10

Re: какие-то глюки с динамическими библиотеками

Сообщение pupsik » 20.06.2016 23:04:37

AlphaBlend т.е. выше пример вас не убедил?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: какие-то глюки с динамическими библиотеками

Сообщение Mirage » 21.06.2016 00:33:00

Да зачем вам вообще сдались эти so/dll? Хлопоты одни, а толку никакого.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: какие-то глюки с динамическими библиотеками

Сообщение wavebvg » 22.06.2016 10:42:11

Mirage писал(а):Да зачем вам вообще сдались эти so/dll? Хлопоты одни, а толку никакого.

Чтобы разбив логическую часть на независимые библиотеки не иметь проблем в необходимости собирать большое проект на каждый чих. Продакшен становится дальше, зато после релиза проблем на порядок меньше (ну если не извращаться и всё делать как надо).
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35

Re: какие-то глюки с динамическими библиотеками

Сообщение mig-31 » 22.06.2016 13:09:20

Если не планируется использование библиотеки в других языках, так можно использовать чисто паскаль библиотеки. Сборка проекта не проблема, ведь компилируются только изменения.
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 238

Рейтинг@Mail.ru