Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Экспорт / импорт (dll) функций из класса [D7]


Страницы:   1 2 3 4 5 6 7 8 9 10

parovoZZ ©   (2006-06-27 05:35:00) 

К примеру, запись
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.


Страницы:   1 2 3 4 5 6 7 8 9 10

Наверх

Титульная страница Поиск, карта сайта Написать письмо