Страница 1 из 1

использование IBX в dll

Добавлено: 06 июн 2006, 10:49
Zoreslav
Подскажите порядок использования компонентов IBX в dll. Подключение создается в основном модуле. Каким образом передавать подключение в dll. В книге где-то видел примеры для BDE, там передавался дескриптор IBDatabase в dll. Подкиньте, пожалуйста, ссылки по теме

Добавлено: 06 июн 2006, 10:58
Dimitry Sibiryakov
Если хочешь передавать что-то в длл, передавай хэндлы. А лучше всего вообще так не делай.

Добавлено: 06 июн 2006, 11:04
Zoreslav
Dimitry Sibiryakov писал(а):Если хочешь передавать что-то в длл, передавай хэндлы. А лучше всего вообще так не делай.
А как? Если у меня будет 20 вариантов импорта-экспорта, куча всяких расчетов, построений графиков и т.д. Лепить все в один ехе-шник? Или переходить на другие компоненты?

Добавлено: 06 июн 2006, 11:17
Dimitry Sibiryakov
Конечно все в один екзешник. Толще он от этого уже не станет. Всякие отчеты (в зависимости от генератора), картинки и прочую лабуду можно вынести во внешние файлы, а логику лучше не распылять. Соотношение результата к проблемам невыгодное.

Добавлено: 06 июн 2006, 11:37
Zoreslav
Dimitry Sibiryakov писал(а):Конечно все в один екзешник. Толще он от этого уже не станет. Всякие отчеты (в зависимости от генератора), картинки и прочую лабуду можно вынести во внешние файлы, а логику лучше не распылять. Соотношение результата к проблемам невыгодное.
Ну что ж, спасибо!

Добавлено: 17 июн 2006, 23:16
Zhur
Zoreslav писал(а): Ну что ж, спасибо!
Могу немного не согласиться. Если проект расчитан на широкое использование, DLL несколько облегчают, например, вопрос сопровождения. Представляю, обнаруживается баг. Что проще? переслать юзерам по электронке одну маленькую DLL-ку или толстый EXE? Думаю, вопроситель должен сам взвесить все за и против, а после выбрать то, что ему более подходит.

Добавлено: 18 июн 2006, 07:19
CyberMax
Zhur писал(а):Что проще? переслать юзерам по электронке одну маленькую DLL-ку или толстый EXE?
Еще один... Товарищи, на дворе 2006 год. Не 1996 год. И даже не 2001. А тут советы по меньшей мере 5-летней давности.
1. Есть архиваторы. У него же екзешник не 50 мегабайт. Упакованный максимум метр будет.
2. Переслать dll и exe - одинаково просто. Что 50 кб, что пять мегабайт - все равно. Потому что скорости позволяют, а трафик достаточно дешев.
3. Без dll код писать будет несравненно проще. Вам не надо будет постоянно переключаться между проектами - основным и как минимум одной dll.
Я уж молчу про DLL-hell :lol: :lol: :lol:.

Добавлено: 18 июн 2006, 13:47
Zhur
CyberMax писал(а):Еще один... Товарищи, на дворе 2006 год. Не 1996 год. И даже не 2001. А тут советы по меньшей мере 5-летней давности.
1. Есть архиваторы. У него же екзешник не 50 мегабайт. Упакованный максимум метр будет.
2. Переслать dll и exe - одинаково просто. Что 50 кб, что пять мегабайт - все равно. Потому что скорости позволяют, а трафик достаточно дешев.
К сожалению, например, мои юзверы, как правило имеют одно подключение через модем на всю организацию. Я говорю про наше отечественное здравоохранение. :cry: Это, конечно, частный случай, но тем не менее!

Добавлено: 18 июн 2006, 13:54
kdv
IBX в DLL насколько я помню, делается только через runtime packages.

Добавлено: 18 июн 2006, 15:48
Zhur
kdv писал(а):IBX в DLL насколько я помню, делается только через runtime packages.
Да... это так.
Кстати, сколько может весить EXE, в котором реализовано все. Я имею в виду и формы, и отчеты, и все остальное. Допустим, пусть для базы в 100 таблиц???

Добавлено: 18 июн 2006, 19:33
kdv
Допустим, пусть для базы в 100 таблиц???
не надо ему это. у него же импорт сделан. чего вас сразу на глобальные мысли прет?

Добавлено: 18 июн 2006, 20:54
Zhur
kdv писал(а):
Допустим, пусть для базы в 100 таблиц???
не надо ему это. у него же импорт сделан. чего вас сразу на глобальные мысли прет?
Ну... это я уже так... о своем. :roll:

Добавлено: 19 июн 2006, 08:13
Dimitry Sibiryakov
Zhur писал(а):переслать юзерам по электронке одну маленькую DLL-ку или толстый EXE?
Delphi и "маленькая DLL-ка" как-то плохо совмещаются...

Добавлено: 19 июн 2006, 11:02
WildSery
CyberMax, а вы всегда проекты в одиночку пишете?
Замечу, что есть такая штука, как контроль версий. Это когда разные разработчики пишут разные части проекта. С одним екзешником вы ...эээ... устанете сводить исходники для компиляции рабочего варианта проекта.
Или даже вот вам ситуация для "одночеловекописанного" проекта:
Вы очередной раз отправили пользователю exe. И тут пользователь говорит - "а у меня файл-то не качается!". И тут начинается пляска - в какой момент перестал качаться, а какая это была версия, а что ещё в этой версии менялось.... Даже с историей изменений тяжело. Если ведёте.
Добавлю про тестирование. (Вижу улыбку кривую)
После изменений в таком проекте необходимо проводить полное тестирование каждый раз, т.к. менялся весь - неизвестно, в каком месте ошибка возникла и где аукнется.

Добавлено: 19 июн 2006, 13:20
Dimitry Sibiryakov
Вот как раз разницы между групповой разработкой одного модуля и нескольких практически нет. Да и контроль версий даже при "монопольной" разработке вешь сугубо необходимая.
Что же до полного тестирования... Багу неважно в каком файле сидеть.

Добавлено: 19 июн 2006, 18:09
WildSery
Это почему же нет разницы? Поковыряли один и тот же исходник, а потом начинают заниматься merge?
Вообще, dll или не dll - сугубо личный вопрос.

Добавлено: 19 июн 2006, 18:15
CyberMax
Zoreslav вроде как один пишет. Если это так, то dll ему не нужны.

P.S. Полностью соглашаюсь с постом Dimitry Sibiryakov.

Добавлено: 19 июн 2006, 18:26
kdv
кстати, есть такая хреновина, как "патчеры". Берешь старую и новую версию, любое число файлов, и генерится патч. Потом применяется у клиента. Только, все что я видел приличное - платное.

Добавлено: 20 июн 2006, 16:33
WildSery
Полезность патчера сомнительна.
Во-первых, как уже упоминалось выше, сейчас каналы широки и глубоки.
Во-вторых, в этом случае обязательна установка _всех_ версий, без пропусков, иначе не накатится. Если речь идёт о каком-нибудь оффлайновом клиенте у 400-700 удалённых (в том числе друг от друга) пользователей, можно смело хоронить эту хорошую идею.