![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Экспорт / импорт (dll) функций из класса [D7]
parovoZZ © (2006-06-27 05:35:00)
Страницы: < 1 2 3 4 5 6 7 8 9 10 >
К примеру, запись
exports
TMyClass.myFunc name 'MyFunc';
ошибочна. А как быть?
Fay (2006-06-28 10:35:00) [161]2 Leonid Troyanovsky © (27.06.06 21:52) [9]
> однако, bpl "приивязаны" к exe
В смысле?
Игорь Шевченко (2006-06-28 10:31:00) [162]Пусик © (28.06.06 10:22) [21]
Дело в том, что DLL не является чем-то самостоятельным. С точки зрения программы, использующей DLL, DLL представляет только набор процедур, которые надо вызывать, поэтому как реализованы внутренности DLL, программе неинтересно. Вот в C++, например, можно в DLL объявить базовые классы и в основной программе наследоваться от них, здесь уже можно говорить про ООП с использованием DLL. Тоже самое с пакетами в Delphi.
Fay (2006-06-28 10:30:00) [163]Удалено модератором
Примечание: Offtopic
Пусик (2006-06-28 10:23:00) [164]Удалено модератором
Примечание: Offtopic
Пусик (2006-06-28 10:22:00) [165]
> Игорь Шевченко © (28.06.06 09:48) [20]
>До тех пор, пока
> ООП присутствует внутри DLL и не вылезает наружу о каком-
> то использовании его говорить не стоит.
Так все же, используется ООП внутри DLL или не используется?
Если его нельзя/не рекомендуется использовать, то почему?
Если же ООП в DLL используется, то почему нельзя говорить об этом? Это секретная информация?
Пусик (2006-06-28 10:22:00) [166]
> Fay © (28.06.06 09:47) [18]
> 2 Пусик © (28.06.06 9:33) [17]> Да примеров полно.Не вижу
> ни одного примера. Только декларация их существования.
Практическую реализацию я оставлю на твое усмотрение.
Шпиён (2006-06-28 09:48:00) [167]
> Leonid Troyanovsky © (28.06.06 06:49) [15]
>
>
> Пример удобного использования объекта в dll в студию, плиз.
>
Пример:
Дано:
1) "Сторонний"(соседнего отдела) скриптовый интерпретатор с поддержкой плагинов-расширений (в виде подключаемых dll).
2) Готовые и отлаженныеsmpp-компоненты (другой разработчик).
Задача: Создать плагин для реализации "скриптового" smpp-клиента.
Игорь Шевченко (2006-06-28 09:48:00) [168]
> Говорить о том, что ООП не предназначено для использования
> в DLL - то же самое, что говорить, будто бензин предназначен
> только для использования в мотоциклах.
До тех пор, пока ООП присутствует внутри DLL и не вылезает наружу о каком-то использовании его говорить не стоит. Мало ли, что там у DLL внутри.
Fay (2006-06-28 09:47:00) [169]2 Пусик © (28.06.06 9:33) [17]
> Да примеров полно.
Не вижу ни одного примера. Только декларация их существования.
Пусик (2006-06-28 09:33:00) [170]
> Leonid Troyanovsky © (28.06.06 06:49) [15]
> Пример удобного использования объекта в dll
> в студию, плиз.
Да примеров полно.
- Класс-наследник TStrings с дополнительными функциями поиска файлов, обработки(например, копирования).
- Специализированные классы-обертки Winsock.
Продолжать список бессмысленно, так спектр возможных задач настолько широк, насколько широки вообще потребности в ЛЮБЫХ программах.
Говорить о том, что ООП не предназначено для использования в DLL - то же самое, что говорить, будто бензин предназначен только для использования в мотоциклах.
Leonid Troyanovsky (2006-06-28 06:52:00) [171]
> Шпиён (28.06.06 01:25) [14]
> ps А причем тут VCL? ООП, imho, все же нечто большее, чем
> VCL...
"Особенно - VCL" = "для некоторой (особой) части ООП".
--
Regards, LVT.
Leonid Troyanovsky (2006-06-28 06:49:00) [172]
> Шпиён (28.06.06 01:25) [14]
> Ну не знаю. Если мне для решения задачи удобнее использовать
> классы - я все равно их использую
Пример удобного использования объекта в dll в студию, плиз.
--
Regards, LVT.
Шпиён (2006-06-28 01:25:00) [173]Ну не знаю. Если мне для решения задачи удобнее использовать классы - я все равно их использую, кошерно это или нет. А если обоснованно потребуется goto - использую goto...кто бы что об этом ни говорил.
ps А причем тут VCL? ООП, imho, все же нечто большее, чем VCL...
Leonid Troyanovsky (2006-06-28 00:23:00) [174]
> Шпиён (28.06.06 00:10) [12]
> Так и спрашиваю.... что такого особенного в классах, что
> противопоказано для dll (если, конечно, не экспортировать
> их оттуда)???
А если их не экспортировать оттуда, т.е., если можно
обмениваться лишь простыми (необъектными) типами,
то, нет никакой нужды в использовании этих объектов.
Особенно - VCL, не рассчитанной на работу в dll.
--
Regards, LVT.
Шпиён (2006-06-28 00:10:00) [175]
> Leonid Troyanovsky © (27.06.06 23:59) [11]
Так и спрашиваю.... что такого особенного в классах, что противопоказано для dll (если, конечно, не экспортировать их оттуда)???
Leonid Troyanovsky (2006-06-27 23:59:00) [176]
> Шпиён (27.06.06 23:51) [10]
> > Для работы в dll классы не предназначены.
> Ж%-О Не понял....
Дык, не стесняйся, спрашивай.
--
Regards, LVT.
Шпиён (2006-06-27 23:51:00) [177]
> Leonid Troyanovsky © (27.06.06 21:40) [7]
>
>
> Для работы в dll классы не предназначены.
Ж%-О Не понял....
Leonid Troyanovsky (2006-06-27 21:52:00) [178]
> Пусик © (27.06.06 21:42) [8]
> Это нужно понимать так, что в DLL не рекомендуется использовать
> ООП?
[4] - для дельфийского применения (однако, bpl "приивязаны" к exe).
[5] - универсально (ес-но, с недельфийской объектной моделью).
--
Regards, LVT.
Пусик (2006-06-27 21:42:00) [179]
> Leonid Troyanovsky © (27.06.06 21:40) [7]
> > Пусик © (27.06.06 21:00) [6] > Как и везде, классы дают
> именно то, для чего предназначены Для работы в dll классы
> не предназначены.
Это нужно понимать так, что в DLL не рекомендуется использовать ООП?
Leonid Troyanovsky (2006-06-27 21:40:00) [180]
> Пусик © (27.06.06 21:00) [6]
> Как и везде, классы дают именно то, для чего предназначены
Для работы в dll классы не предназначены.
Потому как dll есть совершенно особый вид PE, не ориентированный
на объектную модель. За исключением специальных случаев,
упомянутых ранее [4, 5].
--
Regards, LVT.