Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

блин ну и умучался я с этой Вашей bds 2006 ))   Найти похожие ветки 

 
iZEN ©   (2007-01-11 23:55) [40]


> xayam ©   (11.01.07 22:39) [39]
> Если рассуждать также как ты, то можно продолжить
> аналогию на exe"ик. Какой от него толк? Только без него
> не стоит и начинать программировать )) нечего запускать
> то будет ))

Если рассуждать так, как я, то техника BPL в Delphi ненужна СОВСЕМ. Если она нужна, в том виде, в котором её представляют BPL, то лучше было бы использовать DLL, не меняя расширение -- так по крайней мере честнее для пользователей других средств разработки.

Достаточно просто подключать OCX и, надеюсь, не нужно объяснять, в чём их преимущества перед BPL/DLL? (А то, блин, второго круга не избежать)


 
iZEN ©   (2007-01-12 00:09) [41]


> Юрий Зотов ©   (11.01.07 22:02) [38]
>
> Угу. С исходниками облом вышел - значит, надо что-то новенькое
>  придумать. Типа - а почему не зеленое? Зеленое должно быть.
>  Обязано.

Я же говорю: не пудрите людям мозги насчёт всеуниверсальности BPL.


> Юрий Зотов ©   (11.01.07 22:02) [38]
>
> Хорошо, объясняю. Но в последний ра, бо уже надоело.
>
> 1. Для работы приложения, собранного без run-time пакетов
> не нужно вообще ничего.

Это факт, я не спорю. В настройках компилятора даже флаг такой есть.


> Юрий Зотов ©   (11.01.07 22:02) [38]
>
> 2. Для работы приложения, собранного с run-time пакетами
> нужны BPL этих пакетов и больше ничего.

Следствие вытекает из п.1.


> Юрий Зотов ©   (11.01.07 22:02) [38]
>
> 3. Для сборки пакетов и приложений, зависящих от какого-
> либо пакета нужны DCP и DCU этого пакета.

Воооооот.


> Юрий Зотов ©   (11.01.07 22:02) [38]
>
> 4. В сабже речь идет о п.2. К чему Вы, извините, приплели
> сюда п.3 - непонятно.

Я думал, человек хочет выяснить степень универсальности BPL в контексте расширяемости. Он УЖЕ сделал проект с плагинами (MDI-формы в BPL), но ему показалось этого МАЛО. Расширяемости ему, видите ли не хватает.
Я привёл аргументы в ущербности BPL, в том числе в способе распространения кода для разработки (BPL сама по себе ничего не представляет без исходников/DCU/DCP). Потом обратил внимание на технологию OCX, которая совмещает в себе механизм интроспекции и динамического вызова кода, полученного через этот механизм интроспекции. В Delphi возможен вызов этого кода в статическом связывании (в этом случае использование OCX в проекте равносильно использованию DLL/BPL), так и динамическое связывание во время  выполнения приложения (аналог контейнера OLE, COM/DCOM).


> Юрий Зотов ©   (11.01.07 22:02) [38]
> 5. Ваше заявление "распространять вместе с BPL, ещё и какие-
> то файлы DCU и DCP, код которых фактически УЖЕ содержится
> в BPL, -- следствие непродуманной архитектуры IDE" свидетельствует
> лишь о том, что Вы не знаете (и/или не понимаете), как формируется
> исполнимый код, чем он  отличается от объектного, что такое
> линковщик и зачем он нужен.

Может наоборот, я понимаю гораздо больше, чем разработчики Borland, и вижу их ошибки? А?

Использование OCX было бы универсальным решением на все случаи жизни, вы будете спорить?


 
Юрий Зотов ©   (2007-01-12 01:00) [42]

> вы будете спорить?

Нет, конечно. Разве я, не разработавший ни одного промышленного компилятора, могу спорить с человеком, который "понимает гораздо больше, чем разработчики Borland и видит их ошибки".


 
API ©   (2007-01-12 02:45) [43]

Так что распространять вместе с BPL, ещё и какие-то файлы DCU и DCP, код которых фактически УЖЕ содержится в BPL, -- следствие непродуманной архитектуры IDE.

А в С вообще беда, там какие-то странные header-файлы? Что, естественно, свидетельствует о непродуманности архитектуры всей линейки языков, и как следствие - вызывает глючность Windows, так что лучше писать на Java под Linux. А лучше просто пойти и удариться головой о стену. Летальный исход не обязателен, но приветствуется.


 
Игорь Шевченко ©   (2007-01-12 10:12) [44]


>
> 3. Для сборки пакетов и приложений, зависящих от какого-
> либо пакета нужны DCP и DCU этого пакета.


DCU не нужны


 
Lola ©   (2007-01-12 14:48) [45]

Sorry, за оффтоп

> Юрий Зотов ©

Юра, напиши мне или Володе ;) Соскучились!


 
Юрий Зотов ©   (2007-01-12 14:56) [46]

> Lola ©   (12.01.07 14:48) [45]

Я тоже. Куда вы из аськи делись?
Напишу, только поздно вечером, раньше не смогу.


 
Vga ©   (2007-01-13 08:46) [47]

> [41] iZEN ©   (12.01.07 00:09)
> Использование OCX было бы универсальным решением на все
> случаи жизни, вы будете спорить?

А их разве можно статически линковать? AFAIK это все те же DLL.

> [43] API ©   (12.01.07 02:45)

Почему под Линукс? Он же тоже на С писан.


 
iZEN ©   (2007-01-13 09:31) [48]


> Vga ©   (13.01.07 08:46) [47]
>
> > [41] iZEN ©   (12.01.07 00:09)
> > Использование OCX было бы универсальным решением на все
> > случаи жизни, вы будете спорить?
>
> А их разве можно статически линковать? AFAIK это все те
> же DLL.

"Псевдостатически", если уместно это слово, -- можно, они будут грузится как DLL. Любой OCX можно импортировать в среду Delphi, в проект. При этом создаются заглушки для ActiveX-объектов, не всегда со всей информацией -- зависит от переваривания полченного кода pascal-компилятором, иногда требуется ручная правка кода заглушек. Через эти заглушки и осуществляется взаимодействие с ActiveX-объектами. Получается, что компилятор проверяет все вызовы на этапе компиляции кода заглушек с прикладным кодом.

Другой способ -- использование интерфейса IDispatch и вызов методов/работа со свойствами по именам (тип данных Variant). Импортирование OCX в среду/проект не требуется. Названия методом и свойств узнаются с помощью любых TypeInfo-эксплореров. Способ более затратный в плане производительности, так как вручную придётся инстанцировать экземпляр объекта (что, в случае заглушек, делается автоматически в сгенерированном коде), при вызовах приводить данные к нужному типу и следить за правильностью приведения во время выполнения (нетипобезопасный способ).

Библиотека OCX, в любом случае, должна распространяться вместе с EXE и регистрироваться в реестре перед использованием.


 
нечитатель   (2007-01-13 14:49) [49]


> А их разве можно статически линковать? AFAIK это все те
> же DLL.
/
iZen использует необычную терминологию. Конечно, статически линковать их нельзя.


> В Delphi возможен вызов этого кода в статическом связывании
> (в этом случае использование OCX в проекте равносильно использованию
> DLL/BPL), так и динамическое связывание во время  выполнения
> приложения (аналог контейнера OLE, COM/DCOM).

OCX - старое название ActiveX-компонент, MS отказалась от использования этой аббревиатуры лет 8 назад.

Так называемые "статическое/динамическое связывание" принято называть ранним/поздним связванием.


 
нечитатель   (2007-01-13 14:52) [50]

Чтобы подавить всех своей эрудицией можно еще про явное-неявное связывание dll нагрузить.


 
Vga ©   (2007-01-16 09:31) [51]

> [48] iZEN ©   (13.01.07 09:31)
> "Псевдостатически", если уместно это слово, -- можно, они
> будут грузится как DLL.

Угу, оберточно. К "статически" это ни малейшего отношения не имеет.


 
Mva   (2007-01-16 09:50) [52]

Не бери ничего в голову.
С Днём Рождения.



Страницы: 1 2 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.042 c
15-1168682519
Footballer
2007-01-13 13:01
2007.02.04
Вопрос не по делфи


6-1157144470
Орион
2006-09-02 01:01
2007.02.04
Прокси для TWebBrowser


2-1169218027
FIL-23
2007-01-19 17:47
2007.02.04
шаблон


2-1168786829
Kostafey
2007-01-14 18:00
2007.02.04
Подтверждение SaveAs для Word и Excel


15-1168629626
PHPdeveloper
2007-01-12 22:20
2007.02.04
Хмм, вопросик