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';

ошибочна. А как быть?


Leonid Troyanovsky   (2006-06-28 21:38:00) [121]


> Пусик ©   (28.06.06 21:22) [62]


> Факты - они для всех едины.

Ну, и в чем есть сермяжная правда жизни Windows?

> я согласна и не согласна, отфильтровывать их по категориям?

Конечно, лучше уж по категориям, чем огульно.
Бо, тезисов я, IMHO, предоставил вполне.

> Убедительных доводов против моего мнения я не увидела пока.

Ну, а я не увидел к-л обоснований оного мнения.
За исключением, наверное, частных, т.е. " у меня все ок".

> То, что надо осторожно работать в DLL - и так понятно, думаю,
>  что тут комментарии и не требуются.

А кто говорил про осторожно?
Я, например, говорил не таясь: работать с длл не надо.

> Ну вот не вижу я минусов. НЕ ВИЖУ.

Не стоит этим гордится, IMHO.
У некотрых, пардон, дальтонизм g(gправда, у женщин редкость),
у некоторых близорукость, дальнозоркость или астигматизм.

--
Regards, LVT.


Шпиён   (2006-06-28 21:37:00) [122]


> Leonid Troyanovsky ©   (28.06.06 21:24) [63]

Считаешь, нужно было СОМ прикрутить? Так накладные расходы почище, чем на создание объекта в dll будут.
А "трахаться" с чужим кодом в 270К, когда на все - неделя - мазохистов нет, это и называется - неудобство.
Хорошая программа - та, которая работает 1)правильно 2)надежно 3)ресурсов потребляет не больше, чем допустимо . Имхо, единственный критерий.
А что там у нее внутри - это внутреннее дело программиста.
Но лучше уж объекты, чем "лапша", если дальнейшая поддержка предполагается.


Пусик   (2006-06-28 21:34:00) [123]

Ладно. Надо завязывать. Все равно агументов, похоже, хороших нет.
Пусть каждый остается при своем мнении.


Leonid Troyanovsky   (2006-06-28 21:24:00) [124]


> Шпиён   (28.06.06 20:44) [54]

> Ни одной натяжки. Абсолютно реальная ситуация.


Реальность, IMHO, и есть причина большинства натяжек.
Назовем это здоровым компромиссом.
Т.е., никому не хотелось трахаться с чужим кодом и
все потекли по течению.

Однако, это вовсе не основание для того, чтобы включать
изваяенного франкейштейна в "плагин" (видимо, dll, sorry).

--
Regards, LVT.


Пусик   (2006-06-28 21:22:00) [125]


> Leonid Troyanovsky ©   (28.06.06 21:12) [58]
>Но, дело ж не
> только в нас?


А в ком?
Есть мы - те, кто дискутирует, а есть факты из жизни Windows.
Факты - они для всех едины.


> Огласите весь список, пжлст.


Зачем? Дискуссия по поводу "использовать или не использовать ООП в DLL" имеет мало отношения к начальной теме.
Имеет ли смысл вытаскивать все те высказывания, с которыми я согласна и не согласна, отфильтровывать их по категориям?


> Т.е., каждый - сам себе злобный Буратино.


Опять же - дело не взлобности к самому себе, а в поисках истины.

Убедительных доводов против моего мнения я не увидела пока.
То, что надо осторожно работать в DLL - и так понятно, думаю, что тут комментарии и не требуются.

Ну вот не вижу я минусов. НЕ ВИЖУ.


Leonid Troyanovsky   (2006-06-28 21:17:00) [126]


> Leonid Troyanovsky ©   (28.06.06 21:16) [60]

> но, и в рамках _определенного_ протокола.


Прототипа, тьфу.
Sorry.

--
Regards, LVT.


Шпиён   (2006-06-28 21:16:00) [127]


> В-третьих, какие могут быть дополнительные расходы при использовании
> классов?
> Выделение памяти? Какая разница, выделяется память для простого
> типа или для объекта?

Тут ты перегибаешь. Накладные расходы на использование объектов все же больше. Другое дело, что они компенсируются упрощением повторного использования и поддержки кода.
"Всякий овощ хорош в своё время"(с)


Leonid Troyanovsky   (2006-06-28 21:16:00) [128]


> Пусик ©   (28.06.06 20:37) [50]

> Совершенно верно. Не важно. Важен факт, что DLL может иметь
> вполне самостоятельное значение для вызова функций вполне
> определенного
> прототипа


Странное понимение самостоятельности.
Т.е., мало что в рамках процесса, предоставляемого rundll,
но, и в рамках _определенного_ протокола.

--
Regards, LVT.


Leonid Troyanovsky   (2006-06-28 21:12:00) [129]


> Пусик ©   (28.06.06 20:34) [49]


> И почему же я должна отказаться от ООП? Вследствие того,
>  что тебе не нравится использование ООП в DLL?

У меня не было цели отвратить Пусика от оных деяний.
Т.е., каждый - сам себе злобный Буратино.

Что не нравится? Можно перечитать, IMHO, я не в многих
постах столь многословен.

> У меня счастье и отсуствие проблем и с DLL вместе. Чего
> и тебе желаю.

Спасибо.
Но, дело ж не только в нас?

> Почти единственное высказывание, с которым можно согласиться.

Огласите весь список, пжлст.

--
Regards, LVT.


Пусик   (2006-06-28 21:09:00) [130]


> Классическая dll ориентирована на работу лишь с простыми
> (необъектными) типами.Поэтому, создание, изменение и разрушение
> объектовесть лишние расходы в оной модели.


Не согласна.
Во-первых, кто сказал, что DLL ориентирована на работу с простыми типами?
ASM в прикладном программировании, как я понимаю, практически нет смысла использовать. ТОгла причем здесь простые типы?
Во-вторых, как уже выше было написано, хост-приложению совершенно без разницы, что делается внутри DLL.
В-третьих, какие могут быть дополнительные расходы при использовании классов?
Выделение памяти? Какая разница, выделяется память для простого типа или для объекта?


Leonid Troyanovsky   (2006-06-28 20:58:00) [131]


> Пусик ©   (28.06.06 20:28) [48]

> Вопрос такой: почему для работы в DLL классы не предназначены?
> Какие есть причины не использовать классы в DLL?


Как я понял, достаточно ответить лишь на один из них?
OK. Отвечаю.

Классическая dll ориентирована на работу лишь с простыми
(необъектными) типами.
Поэтому, создание, изменение и разрушение объектов
есть лишние расходы в оной модели.

Возможен вопрос, а почему же в exe возможно
построение объектного мира, скажем дельфийского?
Отвечаю: exe, т.е. породитель процесса играет именно
ту самую роль "самодостаточности" в рамках win32,
которые некотрые упорно (необоснованно) приписывают dll.

--
Regards, LVT.


Leonid Troyanovsky   (2006-06-28 20:48:00) [132]


> Fay ©   (28.06.06 20:12) [47]


Отлучился на службу, а тут вовсю отцвели стереотипы :)
Не сдержался, sorry.

--
Regards, LVT.


Пусик   (2006-06-28 20:44:00) [133]


> Fay ©   (28.06.06 20:41) [51]
> 2 Пусик ©   (28.06.06 20:37) [50]Не осилил 3-е предложение.
> ..


Идущий осилит.


Шпиён   (2006-06-28 20:44:00) [134]


> Leonid Troyanovsky ©   (28.06.06 20:06) [46]


> Чего-то больно много натяжек (нет, чтоб по-простому, на
> кастрюльках).

Ни одной натяжки. Абсолютно реальная ситуация.
Задача была очень быстро создать smpp-клиент для функционального и нагрузочного тестирования sms-центра. Причем клиент именно "скриптовый", позволяющий максимально просто (так, чтобы с этим мог справиться не программист) описывать выполнять различные сценарии работы, в том числе и некорректные. Плюс - возможность трассировки (дампы пакетов).
Скриптовый интерпретатор и все его вывихи - следовало принимать как данность (наш плагин - не единственный, плагины можно подключать по несколько штук, цепочкой, добавляя нужные команды), компоненты - тоже. Времени на собственную реализацию протокола SMPP - ноль целых, шиш десятых (и нецелесообразно при наличии готовой и отлаженной реализации).
Клиент создан и работает.


Пусик   (2006-06-28 20:43:00) [135]

Все же хотелось бы услышать на ясно и четко поставленный вопрос в постах [12],[29],[34],[48] такой же четкий и ясный ответ.

Аргументы навроде "Нет нужды использовать" - аргументами, естественно, не являются. Это то же самое, что нет нужды использовать стиральную машину - ведь можно руками постирать.


Fay   (2006-06-28 20:41:00) [136]

2 Пусик ©   (28.06.06 20:37) [50]
Не осилил 3-е предложение...
М.б. перефразируешь?


Пусик   (2006-06-28 20:37:00) [137]


> Leonid Troyanovsky ©   (28.06.06 20:00) [45]
> > Пусик ©   (28.06.06 11:22) [34] > Можно. Например, использовать
> RunDll32.exe для выполнения > некоторой функции из DLL.Оная
> предназначена лишь для вызова функций вполне определенного
> прототипа.Да, собс-но, это не так уж и важно.


Совершенно верно. Не важно. Важен факт, что DLL может иметь вполне самостоятельное значение для вызова функций вполне определенного
прототипа


Пусик   (2006-06-28 20:34:00) [138]


> Leonid Troyanovsky ©   (28.06.06 19:31) [40]



> Я пока не видел аргументов за использование ООП в dll.


А я пока не видела против.

> Допустим даже, что у нас есть доводы за dll.Как, собс-но,
>  мы должны применить ООП?Видимо:1. Создать объект2. Заполнить
> его поля некоторыми простых типами,переданными из хоста.
> 3. Сделать некоторые пассы.4. Вернуть хосту нужные простые
> типы из полей.5. Разрушить объект.



> Налицо некоторые overheads. Т.е., все это совершенно спокойноможно
> свести к неким преобразованиям простых типов, без мучительных
> раздумий, как уследить за распределеннойв длл памяти, что
> будет, если будет повторный вызов в промежуткемежду 1 -
> 6 и т.д.


Можно свести все к простым типам. Тогда для чего создано ООП? Для облегчения разработки, однако.
И почему же я должна отказаться от ООП? Вследствие того, что тебе не нравится использование ООП в DLL?


> Извольте-с.Не используйте объекты в длл и будет вам счастье.


У меня счастье и отсуствие проблем и с DLL вместе. Чего и тебе желаю.


> И, вообще, не используйте длл, если без оной можно обойтись.


Почти единственное высказывание, с которым можно согласиться.


Пусик   (2006-06-28 20:28:00) [139]

Цитата:
Leonid Troyanovsky ©   (27.06.06 21:40) [7]

Для работы в dll классы не предназначены.

Вопрос такой: почему для работы в DLL классы не предназначены?
Какие есть причины не использовать классы в DLL?


Fay   (2006-06-28 20:12:00) [140]

Леонид разбушевался 8)


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

Наверх

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