powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Экспорт/импорт классов из dll
13 сообщений из 13, страница 1 из 1
Экспорт/импорт классов из dll
    #39731491
Здравствуйте, читаю документацию, никак не найду, как в Delphi описать экспорт/импорт классов, реализованных в dll.

Предполагаю, что должно быть нечто вроде такого: https://msdn.microsoft.com/ru-ru/library/81h27t8c.aspx - да вот сам не найду никак.

Подскажите, что и где почитать по этому поводу.
Спасибо.
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731495
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо благодарности


21384601
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731496
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот фикс, что бы утечек не было
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731565
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй интерфейсы - на любом языке, которые поддерживают интерфейсы (с++, си#, vb.net) сможешь их вызывать.
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731572
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курение вредит вашему здоровью,

А у тебя какая конкретно задача? А то есть еще и другие способы.
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731594
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курение вредит вашему здоровьюПредполагаю

Экспорт/импорт откуда и куда? Если неизвестно ни то, ни другой - то только COM объекты. Иначе - только внутренняя документация продукта, что не всегда эквивалентно msdn.
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731699
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если DLL используется только в сочетании в Вашим EXE-файл и оба файла скомпилированы в одной версии Delphi, то вместо интерфейсов проще реализовать на обычных классах. Допустим, если в DLL планируется реализация Вашего класса, то можно объявить методы как virtual, а в EXE объявить аналогичный абстрактный класс с теми же методами, но virtual; abstract. В DLL предусмотреть экспортную функцию, которая будет создавать объект Вашего класса.
Тут важно будет следить, чтобы методы и в DLL и в EXE оставались в одинаковой последовательности.

Пример:
Код: pascal
1.
2.
3.
4.
pay: TAbstractReader;
pay := CreateReaderFromDll();
pay.DoWork();
pay.Free;


Уничтожать объект допускается из EXE, поскольку деструктор является виртуальным (вызовется код, который в DLL).
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731722
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

А если класс в DLL сделать наследником того базового абстрактного класса из EXE, то можно и не беспокоиться о последовательности методов. Но если методы в свою очередь будут принимать/возвращать динамические объекты типа строк, то дополнительно нужно юзать ShareMem (SimpleShareMem) с обеих сторон.
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731752
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad FА если класс в DLL сделать наследником того базового абстрактного класса из EXE, то можно и не беспокоиться о последовательности методов. Но если методы в свою очередь будут принимать/возвращать динамические объекты типа строк, то дополнительно нужно юзать ShareMem (SimpleShareMem) с обеих сторон.
А можно не заморачиваться со всеми этими ограничениями, и делать плугины с обычными функциями с доп параметром "ObjHandle: Pointer", который и является адресом на объект, сознанный в dll же.

И по поводу ShareMem и других способов заставить dll и exe использовать общий менеджер памяти.
От этого становится очень нехорошо, когда в каждой dll стартуют какие-то потоки и они что-то делают.
В итоге - получаем кучу ожиданий блокировок при работе с памятью.
А когда у каждой dll МП свой - такой проблемы нет.
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39731979
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014Используй интерфейсы - на любом языке, которые поддерживают интерфейсы (с++, си#, vb.net) сможешь их вызывать.
С++ интерфейсы не поддерживает.
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39732038
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл Эра,

YouTube Video
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39732048
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл Эра,

Это же COM
...
Рейтинг: 0 / 0
Экспорт/импорт классов из dll
    #39732175
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл Эраziv-2014Используй интерфейсы - на любом языке, которые поддерживают интерфейсы (с++, си#, vb.net) сможешь их вызывать.
С++ интерфейсы не поддерживает.
Поддерживают.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Экспорт/импорт классов из dll
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]