Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1169127758
dimmih
2007-01-18 16:42
2007.02.04
компоненты


1-1165824158
ZFS
2006-12-11 11:02
2007.02.04
MDI-приложение


9-1143470364
Shweps
2006-03-27 18:39
2007.02.04
Документация по созданию игры на Delphi


15-1168879297
Ringo
2007-01-15 19:41
2007.02.04
А зачем ваще заканчивать институт?


3-1163509197
Leshiy
2006-11-14 15:59
2007.02.04
Использование Group by с полями типа BLOB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский