|
|
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, читаю документацию, никак не найду, как в Delphi описать экспорт/импорт классов, реализованных в dll. Предполагаю, что должно быть нечто вроде такого: https://msdn.microsoft.com/ru-ru/library/81h27t8c.aspx - да вот сам не найду никак. Подскажите, что и где почитать по этому поводу. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2018, 23:09 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
Вот фикс, что бы утечек не было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 00:02 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
Используй интерфейсы - на любом языке, которые поддерживают интерфейсы (с++, си#, vb.net) сможешь их вызывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 10:18 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
Курение вредит вашему здоровью, А у тебя какая конкретно задача? А то есть еще и другие способы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 10:28 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
Курение вредит вашему здоровьюПредполагаю Экспорт/импорт откуда и куда? Если неизвестно ни то, ни другой - то только COM объекты. Иначе - только внутренняя документация продукта, что не всегда эквивалентно msdn. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 11:06 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
Если DLL используется только в сочетании в Вашим EXE-файл и оба файла скомпилированы в одной версии Delphi, то вместо интерфейсов проще реализовать на обычных классах. Допустим, если в DLL планируется реализация Вашего класса, то можно объявить методы как virtual, а в EXE объявить аналогичный абстрактный класс с теми же методами, но virtual; abstract. В DLL предусмотреть экспортную функцию, которая будет создавать объект Вашего класса. Тут важно будет следить, чтобы методы и в DLL и в EXE оставались в одинаковой последовательности. Пример: Код: pascal 1. 2. 3. 4. Уничтожать объект допускается из EXE, поскольку деструктор является виртуальным (вызовется код, который в DLL). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 13:18 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
DmSer, А если класс в DLL сделать наследником того базового абстрактного класса из EXE, то можно и не беспокоиться о последовательности методов. Но если методы в свою очередь будут принимать/возвращать динамические объекты типа строк, то дополнительно нужно юзать ShareMem (SimpleShareMem) с обеих сторон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 13:48 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
Vlad FА если класс в DLL сделать наследником того базового абстрактного класса из EXE, то можно и не беспокоиться о последовательности методов. Но если методы в свою очередь будут принимать/возвращать динамические объекты типа строк, то дополнительно нужно юзать ShareMem (SimpleShareMem) с обеих сторон. А можно не заморачиваться со всеми этими ограничениями, и делать плугины с обычными функциями с доп параметром "ObjHandle: Pointer", который и является адресом на объект, сознанный в dll же. И по поводу ShareMem и других способов заставить dll и exe использовать общий менеджер памяти. От этого становится очень нехорошо, когда в каждой dll стартуют какие-то потоки и они что-то делают. В итоге - получаем кучу ожиданий блокировок при работе с памятью. А когда у каждой dll МП свой - такой проблемы нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 14:15 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
ziv-2014Используй интерфейсы - на любом языке, которые поддерживают интерфейсы (с++, си#, vb.net) сможешь их вызывать. С++ интерфейсы не поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 18:06 |
|
||
|
Экспорт/импорт классов из dll
|
|||
|---|---|---|---|
|
#18+
Фэйтл Эра, Это же COM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2018, 20:51 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39731594&tid=2040134]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 435ms |

| 0 / 0 |
