Форум: "Прочее";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Внизблин ну и умучался я с этой Вашей 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;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.045 c