| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > посоветуйте как быть |
| Автор: Value 23.3.2006, 12:52 |
| Я хочу написать программу в которой было бы несколько игр ( пятнашки, сапёр, морской бой) . как сделать лучше чтобы игры были .dll или нет ? |
| Автор: Snowy 23.3.2006, 13:07 |
| Тогда уж bpl. С dll размер будет немаленький... |
| Автор: Guedda 23.3.2006, 13:21 | ||
Да лучше exe-шниками кинуть в инсталляшку все... А потом из главной программы из взывать функцией:
|
| Автор: Alexeis 23.3.2006, 13:29 |
| Value, подразумевается что число игр со временем может менятся или нет |
| Автор: Value 23.3.2006, 13:33 |
| alexeis1, да, для начала я напишу 3 игры, а потом надо будет подумать какие похожие игры попробовать написать |
| Автор: Snowy 23.3.2006, 13:57 |
| Если юзаешь VCL, то в данном случае BPL однозначно! Все общие вещи вынести в отдельный свой BPL. Каждая игра - отдельный BPL, юзающий эти вещи. А ехешник юзает всех. Только при таком раскладе получится минимальный размер. |
| Автор: Демо 23.3.2006, 16:07 |
| Так ведь BPL не только свои написанные придется таскать... |
| Автор: Snowy 23.3.2006, 16:24 |
| Ну да. Еще как минимум rtl.bpl Но, если все делать dll'ами, то уже на второй размер превысит расходы. Кроме того, bpl прекрасно жмутся. |
| Автор: Guedda 23.3.2006, 17:42 |
| Конечно, они жмутся... Также как и dll. Так вот собственно два варианта: 1) Взять программу и сделать bpl-ки. Примерно все будет весить 2Мб Потом поставлять дополнительные bpl-ки и все тут. 2) Взять программу, и подключать дллки, как плагины. Примерно все будет весить 600 Кб. Так зачем же тогда такой перевес? ИМХО, нужно пользоваться дллками, как плагинами, и все будет хорошо. |
| Автор: Snowy 23.3.2006, 17:59 | ||
А каждая дополнительная bpl-ка по 40-70кб... При использовании dll, код дублируется, а для bpl - нет. Ну-ка посчитай, что эффективнее, если плагинов штук 10... В архиве проект на bpl с 10-ю плагинами будет в пределах метра. P.S. bpl-ки жмутся лучше, чем dll. |
| Автор: Guedda 23.3.2006, 18:02 |
| Ну и как же тогда изд-ки подключать динамически? Может ссылку дашь? |
| Автор: Snowy 23.3.2006, 18:08 | ||
| LoadPackAge, UnLoadPackAge. Описание в справке дельфи. Пример:
|
| Автор: Guedda 23.3.2006, 18:14 | ||||
Так что, она сразу загрузится, и выгрузится? Я что то не понимаю... |
| Автор: Snowy 23.3.2006, 18:48 | ||
Когда она выгрузится - в данном примере зависит от процедуры Start. Если у тебя много bpl, то можешь их все прогрузить, а хэндлы сложить в список. При выходе из программы, соответственно все выгружаешь. |
| Автор: Guedda 23.3.2006, 19:05 |
| Все... Спасибо, разобрался... |
| Автор: Демо 23.3.2006, 19:13 |
| Ко всему прочему плюс у пакетов - можно совершенно спокойно один и тот же класс использовать в основной программе и в BPL. |
| Автор: Snowy 23.3.2006, 19:21 | ||
Структура вообще должна быть такой: 1 - Главная программа (1 ехе) >>> 2 - плагины (куча bpl) >>> 3 - Общие классы, функции и прочий код(1 bpl) >>> 4 - rtl В данной схеме: 1. ехе юзает все bpl. 2. Все плагины юзают 3-ю часть, за счет чего общие вещи не дублируются и едины для всех. 3. Никого не юзает, кроме 4. 4. - тандартные bpl (rtl, vlc) - их юзают все. Жаль нарисовать не могу. Было бы нагляднее. |