Написание библиотеки DLL (SO)

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

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

Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

vkosarev писал(а):procedure ShowForm; cdecl; external 'lib';

А хорошо бы:

Код: Выделить всё

]procedure ShowForm; cdecl; external 'lib' name 'НазваниеФункции_В_DLL';
vkosarev
незнакомец
Сообщения: 8
Зарегистрирован: 20.10.2010 21:07:18

Сообщение vkosarev »

Ошибка все равно возникает

Добавлено спустя 4 часа 34 минуты 4 секунды:
По ходу экспериментов выяснилась следующая вещь: библитотека компилируется, в списке экспорта содержит процедуру с именем ShowForm.

Попробовал подключить ее динамически - адрес в библиотеке находится, с этим все в порядке. Но при попытке вызова происходит SIGSERV.
Попробовал подключить ее в Дельфе - тоже ругается.
Создается впечатление что компилируется библиотека некорректно.
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

тоже бьюсь над этой проблемой... если нашли решение - отпишитесь пожалуйста, если не нашли предлагаю искать вместе и поделиться соображениями.
Нашел скудный материал в вики лазаруса, но что-о уж совсем какой-то "рваный" и примера нет.
http://wiki.lazarus.freepascal.org/Crea ... _Libraries
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

Завязывайте вы с этим мутным делом... не все, что прекрасно можно осуществить в дельфи, работает на лазарусе.
viewtopic.php?f=5&t=6363
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Использовать внешний менеджер памяти, например, через

Код: Выделить всё

uses CMem;

пробовали?
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

нашел причину ошибки, плагин пытается создать окно, которое уже создано, если вместо процедуры создания и показа нового окна вставить процедуру изменения каптион формы, все пашет. только пока не исправил
Аватара пользователя
wofs
постоялец
Сообщения: 379
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань
Контактная информация:

Сообщение wofs »

в моей аналогичной теме вопрос был исчерпан указанием ссылки на тему:
http://www.freepascal.ru/forum/viewtopic.php?f=5&t=6256
но ставим вопрос шире, как сделать то же самое для Linux ?
Ответить