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

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


Пусик   (2006-06-29 00:14:00) [101]


> Да, и, собс-но> Максимум ООП, что можно выжать из dll есть
> COM (см. [5])> И чего там особо специализированного в оных
> обертках winsock?> Хочется немного объектов? Изволь. Только
> нечего их> тащить еще в одну длл. Будьте любезны ложить
> в exe.> Если уж на фундаменте exe еще можно построить объектный>
> мир из необъектных кирпичей, то не стоит это делать в dll,
> > бо, уж сильно она не самостоятельна.Хорошо бы к-л контраргументов.
> А то, все равно, огульно. Я ж тоже могу собрать чьи-топосты,
>  подчеркнуть жирно и сказать: не согласен.


Аргумент - пожалуйста.

Смысл использования ООП - в упрощении и ускорении разработки, в повторной используемости классов, в легком изменении, наследовании их.

Для примера: Нужно мне реализовать список с функциональностью TList.
Исходя из твоих принципов, ты подобный список будешь реализовывать с нуля. Зачем? Время, затраченное на разработку такого списка, я лучше потрачу на другие вещи.
В чем я не права? Чем мне грозит использование ООП (в данном случае класса TList) в DLL?


> Дык, вопрос о существовании оных, вроде бы, не обсуждался.
> Давайте не будем подменять топик.


Зато проскакивало заявление, что не все должны задумываться о более сложных вещах, нежели положить на форму TButton.


> Ограничения, IMHO, изложены вполне доступно:то, что лежит
> вне преобразования простых типов данныхв dll есть overheads,
>  или чрезмерно приумножаемые сущности.


Откуда взялись такие ограничения? Я не встречала таких. Поэтому не вижу в них реальных аргументов.


> > А вот гордиться тем, что у меня все хорошо - стоит.Как
> у волка на морозе? :)


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


> Я ж уже говорил, тезисов я выдвинул предостаточно.Только,
>  плиз, без огульности.


Все сказанные тезисы расписаны в предыдущих абзацах и не выдерживают самой простой критики.
Аргументы в них отсутствуют.


Шпиён   (2006-06-28 23:17:00) [102]


> Leonid Troyanovsky ©   (28.06.06 22:54) [83]


> Однако, это также  вселяет уверенность, что dll без нужды
> использоваться не будет ;)

Я не Fay, но тоже отвечу -)

Без нужды я не только Dll  и ООП не буду использовать...без нужды я вообще  ни строчки кода не напишу :Р
Ну, разве что для собственного развлечения...но это тоже нужда своего рода -)))


Игорь Шевченко   (2006-06-28 23:04:00) [103]

Fay ©   (28.06.06 22:46) [81]


> А интерфейсы передавать кошерно?


Я сильно похож на раввина ? :)


Leonid Troyanovsky   (2006-06-28 22:54:00) [104]


> Fay ©   (28.06.06 22:45) [80]

> Сомневаюсь ли я в целесообразности неиспользования длл?
> Не знаю, не думал (и не буду) об этом, пойду лучше - жену
> поцелую 8).


Понимаю, бо это серьезно.

Однако, это также  вселяет уверенность, что dll без нужды
использоваться не будет ;)

--
Regards, LVT.


Джо   (2006-06-28 22:51:00) [105]

> [81] Fay ©   (28.06.06 22:46)
> 2 Игорь Шевченко ©   (28.06.06 22:44) [79]
> А интерфейсы передавать кошерно?

Интерфейсы, как ни крути — это часть концепции самой ОС. :) Ну, то есть, COM-интерфейсы.


Fay   (2006-06-28 22:46:00) [106]

2 Игорь Шевченко ©   (28.06.06 22:44) [79]
А интерфейсы передавать кошерно?


Fay   (2006-06-28 22:45:00) [107]

2 Leonid Troyanovsky ©   (28.06.06 22:34) [78]
> Борьба, на самом деле, идет за каждый байт пресловутой dll.
Чё, серьёзно? А мне пофиг...
> Может ты сомневаешься в целесообразности неиспользования объектов в длл?
Сами библиотеки мне редко бывают нужны, а классы в них и вовсе не встречаются. Правда, я не избавлялся от них специально - просто необходимость не возникала. Т.о. у меня нет чёткой позиции по этому вопросу (наш офтопик), нет проверенной в боях доктрины 8)

Сомневаюсь ли я в целесообразности неиспользования длл? Не знаю, не думал (и не буду) об этом, пойду лучше - жену поцелую 8).


Игорь Шевченко   (2006-06-28 22:44:00) [108]

Fay ©   (28.06.06 22:28) [76]


> Игорь, речь уже давно идёт об использовании классов внутри
> реализации экспортируемых функций.


Так в каком из постов уже было сказано, что внутри экспортирумеых функций можно хоть черта лысого использовать - от этого никому ни горячо ни холодно. Даже при передаче объектов в качестве параметров код для невиртуальных методов дублируется. А с виртуальными можно на грабли понаступать из-за дублирования таблиц VMT в DLL и в EXE.


Leonid Troyanovsky   (2006-06-28 22:34:00) [109]


> Fay ©   (28.06.06 22:28) [76]

> Игорь, речь уже давно идёт об использовании классов внутри
> реализации экспортируемых функций. 8)


Не.
Борьба, на самом деле, идет за каждый байт пресловутой dll.

Может ты сомневаешься в целесообразности неиспользования
объектов в длл?
Или в неиспользовании самих длл? :)

--
Regards, LVT.


Leonid Troyanovsky   (2006-06-28 22:29:00) [110]


> Пусик ©   (28.06.06 21:58) [70]

> Честно говоря, уже надоело выслушивать предложения без конкретной
> аргументации.


Девствительно. Я, понимаешь, излагаю целую теорию [40],
а в ответ слышу "предложения без конкретной аргументации".

Изволь высказать свой путь ООП внутре dll.
Ну, и, дальше, мы будем следовать со всеми остановками.

--
Regards, LVT.


Fay   (2006-06-28 22:28:00) [111]

2 Игорь Шевченко ©   (28.06.06 22:26) [75]
> Классы в Delphi из DLL не экспортируются.
Игорь, речь уже давно идёт об использовании классов внутри реализации экспортируемых функций. 8)


Игорь Шевченко   (2006-06-28 22:26:00) [112]


> МОжно уже услышать, в конце-концов, убийственный аргумент,
>  против которого нет возражений, или так и будем демагогией
> заниматься?


Можно услышать. Классы в Delphi из DLL не экспортируются. А насчет демагогии - в зеркало, плз


Игорь Шевченко   (2006-06-28 22:20:00) [113]

Пусик ©   (28.06.06 21:54) [68]


> В том, что Indows(как и DLL) существует независимо от того,
>  что  мы думаем о них.


Ага, существуют. И Волга впадает в Каспийское море. Только в Windows объектов нету :) А тут вроде речь об ООП.


Игорь Шевченко   (2006-06-28 22:17:00) [114]

Шпиён   (28.06.06 21:16) [59]


> Другое дело, что они компенсируются упрощением повторного
> использования и поддержки кода.


Это в DLL или в где ? :)


Leonid Troyanovsky   (2006-06-28 22:17:00) [115]


> Пусик ©   (28.06.06 21:56) [69]

> >  что недельфийцы смогут вкусить хотя бы частьоных плодов.

> А что, если будешь использовать ООП, то неделфийцы не смогут
> вкусить плодов?


Пардон, а как они будут вкушать, если им будут доступны
лишь простые типы данных и регулярные процедуры.

--
Regards, LVT.


Leonid Troyanovsky   (2006-06-28 22:15:00) [116]


> Пусик ©   (28.06.06 21:54) [68]


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

> Вообще-то, это абсолютно голословное утверждение.

Никто ж не просил оснований (опровержений).
Однако, такое я заявлял.

> Сортировка и фильтрация(цветом помечены высказывания, с
> которыми не согласна):

Допустим. Однако, мне не понятно, что же из нижеследующего
вызвало не согласие:

> 1. Создать объект
> 2. Заполнить его поля некоторыми простых типами,
> переданными из хоста.
> 3. Сделать некоторые пассы.
> 4. Вернуть хосту нужные простые типы из полей.
> 5. Разрушить объект.

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

Да, и, собс-но

> Максимум ООП, что можно выжать из dll есть COM (см. [5])

> И чего там особо специализированного в оных обертках winsock?

> Хочется немного объектов? Изволь. Только нечего их
> тащить еще в одну длл. Будьте любезны ложить в exe.

> Если уж на фундаменте exe еще можно построить объектный
> мир из необъектных кирпичей, то не стоит это делать в dll,
> бо, уж сильно она не самостоятельна.

Хорошо бы к-л контраргументов.
А то, все равно, огульно. Я ж тоже могу собрать чьи-то
посты, подчеркнуть жирно и сказать: не согласен.

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

> В том, что Indows(как и DLL) существует независимо от того,
>  что  мы думаем о них.

Дык, вопрос о существовании оных, вроде бы, не обсуждался.
Давайте не будем подменять топик.

> Вообще-то, это ты накладываешь ограничения на использование
> ООП в DLL, а не я. Тебе и доводы приводить. У еня довод
> один  - все ОК. Докажи, что не все ОК, и я с тобой соглашусь.
>  Только сомневаюсь, что ты сможешь доказать это кроме как
> на уровне своего убеждения.

Ограничения, IMHO, изложены вполне доступно:
то, что лежит вне преобразования простых типов данных
в dll есть overheads, или чрезмерно приумножаемые сущности.

> А вот гордиться тем, что у меня все хорошо - стоит.

Как у волка на морозе? :)

Я ж уже говорил, тезисов я выдвинул предостаточно.
Только, плиз, без огульности.

--
Regards, LVT.


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

Честно говоря, уже надоело выслушивать предложения без конкретной аргументации.

МОжно уже услышать, в конце-концов, убийственный аргумент, против которого нет возражений, или так и будем демагогией заниматься?


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


> для приверженца ООП это может быть препятствием?Тем более,
>  что недельфийцы смогут вкусить хотя бы частьоных плодов.


А что, если будешь использовать ООП, то неделфийцы не смогут вкусить плодов?


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


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


Вообще-то, это абсолютно голословное утверждение.

Сортировка и фильтрация(цветом помечены высказывания, с которыми не согласна):

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

Особенно - VCL, не рассчитанной на работу в dll.

Допустим даже, что у нас есть доводы за dll.
Как, собс-но, мы должны применить ООП?

Видимо:
1. Создать объект
2. Заполнить его поля некоторыми простых типами,
переданными из хоста.
3. Сделать некоторые пассы.
4. Вернуть хосту нужные простые типы из полей.
5. Разрушить объект.

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


Конечно, не предназначены. Какая уж тут осторожность.
Максимум ООП, что можно выжать из dll есть COM (см. [5])


Не используйте объекты в длл и будет вам счастье.
И, вообще, не используйте длл, если без оной можно обойтись.


И чего там особо специализированного в оных обертках winsock?
Хочется немного объектов? Изволь. Только нечего их
тащить еще в одну длл. Будьте любезны ложить в exe.


Если уж на фундаменте exe еще можно построить объектный
мир из необъектных кирпичей, то не стоит это делать в dll,
бо, уж сильно она не самостоятельна.


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

--------------

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

В том, что Indows(как и DLL) существует независимо от того, что  мы думаем о них.

Ну, а я не увидел к-л обоснований оного мнения.

Вообще-то, это ты накладываешь ограничения на использование ООП в DLL, а не я. Тебе и доводы приводить. У еня довод один  - все ОК. Докажи, что не все ОК, и я с тобой соглашусь. Только сомневаюсь, что ты сможешь доказать это кроме как на уровне своего убеждения.


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


Совершенно верно. А у некоторых закостенелые консервативные убеждения. Я бы сказала, на уровне ретроградства.
Чем гордиться не стоит.

А вот гордиться тем, что у меня все хорошо - стоит.


Leonid Troyanovsky   (2006-06-28 21:46:00) [120]


> Шпиён   (28.06.06 21:37) [65]

> Считаешь, нужно было СОМ прикрутить? Так накладные расходы
> почище, чем на создание объекта в dll будут.


Ну и что?
Разве для приверженца ООП это может быть препятствием?
Тем более, что недельфийцы смогут вкусить хотя бы часть
оных плодов.
Ну, а если они не вкусят, то нах им терпеть эти overheads?

--
Regards, LVT.


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

Наверх

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