-
> [55] Юрий Зотов © (01.12.08 01:51) > А что в этом странного?
Да ну не то что бы странно, а просто некое небольшое неудобство добавилось... ...с поиском нужных, для конкретного приложения и текущего набора плагинов, стандартных BPL. Или действительно их ВСЕ нужно положить рядом с программой?
> При разработке хост-приложения с плагинной архитектурой > важно с самого начала определиться, кто будет писать плагины > - сам разработчик, или все желающие по его документации.
Да конечно я один буду писать, хотя не уверен на 100%, ибо программку делаю для себя.... я всегда и все делаю для себя и никому не даю потом :) шутка, но только в этой строке. Спасибо, Юрий, в общем остановлюсь я на БПЛ, наверное, все проще. Вот еще бы было замечательно...
> [57] Petr V. Abramov © (01.12.08 01:59)
Не вспомнил? :)
-
> действительно их ВСЕ нужно положить рядом с программой?
Их можно положить куда угодно - лишь бы система знала где их искать.
-
А вот такой еще вопрос: Если делать с пакетами, т.е. поставить галку, то вот тот самый список БПЛок под этой самой галкой.... Вопрос по нему. Если я например в программе использую такую структуру: APPDIR
|
-STNDRTBPL
|
-PLUGINS
|
-hostapp.exe то как указать, что списпок стандартных БПЛок, т.е. сами эти библиотеки, находятся в папке ..\APPDIR\STNDRTBPL\ ? Плагины-то грузятся динамически, поэтому там проблем нет, а.... Более того стандартные БПЛки нужны будут и в пакетах-плагинах, а там как это нужно сделать?
-
> [61] Сергей М. © (01.12.08 13:55)
Сорри.... не обновил перед отправкой....
-
> [61] Сергей М. © (01.12.08 13:55)
т.е. мне, для моего нового приложения, которое, не инсталируется и (пере)носится на флэшке, нужно будет при запуске править переменную PATH?
-
> [61] Сергей М. © (01.12.08 13:55) > > действительно их ВСЕ нужно положить рядом с программой?
В прочем в данной строке вопрос был не о путях, а о кол-ве ("ВСЕ") :)
-
> [64] {RASkov} © (01.12.08 14:08)
Windows найдёт рядом с exe, туда и положи.
-
> мне, для моего нового приложения, которое, не инсталируется..нужно будет при запуске править переменную PATH?
Зачем ? Первое же место, где система будет искать твои модули - это стартовый каталог твоего приложения.
-
> вот тот самый список БПЛок под этой самой галкой
> Плагины-то грузятся динамически
В этой строке указываются пакеты, которые будут грузиться статически, а не динамически.
-
> [67] Сергей М. © (01.12.08 14:13) > Зачем ?
Ну как зачем? Неужели мне все в кучу свалить? :) Я то хотел порядок.... т.е. нечто как в [62]... Переменная PATH есть же для конретного процесса и существыует вместе с ним.... или я путаюсь?)
-
> Windows найдёт рядом с exe, туда и положи.
Это понятно, я там в примере по ссылке в [52] именно на этом и сыграл - поиск и загрузку бплок.... Но это просто демка, пробник, а уже потом хочется структоризовать каталог с программой..
-
> Неужели мне все в кучу свалить?
В кучу не надо.
Пакеты общесистемного и общеприкладного назначения клади в %WINDOWS%\SYSTEM - там им и место.
В кр.случае организуй для них отдельную директорию (а-ля C:\Program Files\Common Files\Borland Shared\Common Packages) и пропиши ее в PATH
А плагины свои кидай прямо в свою стартовую директорию - кроме твоего хост-приложения они никому более нафих не нужны.
-
> хочется структоризовать каталог с программой
ну заведи в ней подкаталог а-ля 'Plugins' и грузи свои пакеты, зная абсолютный путь к директории с исп.файлом своего приложения + отн.путь к директории его плагинов
-
> {RASkov}
Пакеты - это те же DLL, и правила поиска у них те же. Посмотрите справку по LoadLibrary, там четко указано, где, как и в каком порядке система ищет библиотеки. Для BPL можно использовать любое хранилище, лишь бы система смогла их найти по одному из этих правил.
Кроме того, сами плагины Вы, видимо, будете грузить вызовом LoadPackage - а там можно напрямую указать путь к загружаемому BPL, без всяких поисков.
-
> [71] Сергей М. © (01.12.08 14:33) > Пакеты общесистемного и общеприкладного назначения клади > в %WINDOWS%\SYSTEM - там им и место
Говорил же вроде.... Я на флэшке буду таскать программу и нее же запускать.... мне что, на каждый комп, в который втыкнится моя флэшка, "выгружать" стандартный набор БПЛок? :)
> [72] Сергей М. © (01.12.08 14:36)
> [73] Юрий Зотов © (01.12.08 14:36)
Да это понятно с плагинами, я про стандартные, которые статично грузятся.... если я хочу их держать не с екзешником, а в спец папке для стандартных пакетов... то как указать, что списпок стандартных БПЛок, т.е. сами эти библиотеки, находятся в папке ..\APPDIR\STNDRTBPL\ ? Плагины-то грузятся динамически, поэтому там проблем нет, а.... Более того стандартные БПЛки нужны будут и в пакетах-плагинах, а там как это нужно сделать?
-
> {RASkov} © (01.12.08 14:05) [62] > APPDIR > | > -STNDRTBPL > | > -PLUGINS > | > -hostapp.exe
Можно взять пример с MS:
APPDIR | -BIN | -PLUGINS | -hostapp.exe -module1.bpl -module2.bpl
-
> [71] Сергей М. © (01.12.08 14:33) > В кучу не надо. > Пакеты общесистемного и общеприкладного назначения клади > в %WINDOWS%\SYSTEM - там им и место.
Я понял, что автор не хочет оставлять что-либо в системе.
> приложения, которое, не инсталируется и (пере)носится на > флэшке
-
> [75] KSergey © (01.12.08 14:46)
Хм... точно, что-то я разгорячился с этими плагимнами-пакетами... Наверно, нечто такую структуру:
> APPDIR > | > -BIN > | > -PLUGINS > | > -hostapp.exe > -module1.bpl > -module2.bpl
и использую. Только вопрос:
Плугины, находящиеся в папке незнакомой системе, нормально увидят стандартные пакеты или всем этим делом все равно рулит хост приложение? т.е. компоненты VCL находящиеся в моих плагинах и в отдельной папке нормально загрузятся из стандартных пакетов лежащих в другом месте, нежели пакеты-плугины.
-
APPDIR | -hostapp.exe -rtl.bpl -vcl.bpl -plugincore.bpl -PLUGINS | -Plug1.bpl -Plug2.bpl rtl, vcl и plugincore грузятся статически + Приложение должно уметь загрузиться без плагинов... а уже по ходу дела ручками подгружаешь \PLUGINS\*.bpl (LoadPackage): эти плагины при загрузке регистрируют себя в plugincore и хост приложение общается только с plugincore
|