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

Посоветуйте что делать с пакетами

СообщениеДобавлено: 15.07.2008 22:24:17
PVR
Есть довольно внушительный проект на Delphi. Этот проект исполбзует пакеты времени выполнения. Всего в процессе загрузки проект цепляет сейчас около 60 таких пакетов ввиду специфики работы данного проекта эти пакеты (все кроме 4 основных) загружаются динамически через LoadPackage. Насколько я смог понять FreePascal не держит таких пакетов (но может я и ошибаюсь) ? Как бы там ни было имел ли кто опыт переноса таких проектов в fpc ? Может у кого есть какие рецепты!

Re: Посоветуйте что делать с пакетами

СообщениеДобавлено: 16.07.2008 05:57:27
Vadim
Только чисто теоретические соображения. :)
Если функции из этих пакетов кроме Вашей программы одновременно будет использовать и какая-то другая программа, то целесообразнее функции из пакетов написать в DLL'ке, чтобы не загружать память компьютера.
Если же нет, т.е. функции из пакетов использует только Ваша программа, то вопрос о пакетах вообще не имеет какого либо смысла. Просто переносите все функции в Ваш код и структурируйте их так, как Вам больше нравится.

Re: Посоветуйте что делать с пакетами

СообщениеДобавлено: 16.07.2008 11:09:00
Bupyc
Имею опыт переноса подобного проекта из Delphi в FPC. Правда у меня не 60 пакетов, но счёт тоже идёт на десятки. После долгих размышлений, пришёл к выводу, что для меня будет не критичным, если весь код будет компоноваться в единый исполняемый файл. Конечно, в этом случае я потерял гибкость при компоновке и "горячей" замене функционала программы в ран-тайм режиме. Но для меня это не сильно страшно, т.к. что будет нужно заказчику, известно, как правило, заранее.

Re: Посоветуйте что делать с пакетами

СообщениеДобавлено: 16.07.2008 20:09:51
alexs
Bupyc
Я пошёл дальше - структура кода по разбиению на пакеты оставил - изменил только способ регистрации модулей - раньше моджуль регистрировался в момент загрузки пакета (из пакета дёргалась спец. функция) - теперь регистрация модуля просто происходит в статичном виде - подлючается нужный файл исходника паскаля, из которого уже и совершается регистрация тогоже модуля. А код функционала вобще переделывается только в разрезе отличий дельфина от лазаря.

Re: Посоветуйте что делать с пакетами

СообщениеДобавлено: 17.07.2008 12:07:20
Bupyc
alexs

У меня примерно то же самое, только функция дёргается не из пакета, а пакет при загрузке из секции initialization в соответствующем юните вызывает функцию регистрации, которая находится в ядре разработки. При компиляции под FPC функциональное наполнение приложения определяется тем, что прописано в секции uses

Re: Посоветуйте что делать с пакетами

СообщениеДобавлено: 17.07.2008 20:07:37
alexs
Тут просто что-то каринально новое изобрести трудно :D
Лазарь точно также построен.

Re: Посоветуйте что делать с пакетами

СообщениеДобавлено: 17.07.2008 23:19:08
Bupyc
По-идее можно было бы в сторону dll или их аналогов посмотреть, но только как то грустно становится, особенно когда начинаешь думать о том, как, например, один класс от другого в разных dll занаследовать. И это только один из многих моментов, из-за которых репу приходится чесать, когда думаешь как быть с модульностью при переходе с дельфей на fpc.