Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

пути поиска bpl-файлов [D7, XP]


Антоныч_ск ©   (2007-03-06 09:40:00) 

Подскажите пожалуйста, как можно программно указать путь, где содержатся bpl-файлы. Дело в том, что я компилирую программу без runtime-пакетов и хотелось бы, чтобы при переносе на другой компьютер bpl-файлы не копировались бы в каталог WINDOWS\SYSTEM32, а находились бы, например, в:
{каталог программы}\bpl\
Естественно, {каталог программы} может быть каким угодно. В Environment Options пути для bpl можно указывать только статические, а вот как сделать их динамическими - не могу понять.


Reindeer Moss Eater   (2007-03-06 15:26:00) [1]

Либо [4], либо [11], либо в папку с программой


Сергей М.   (2007-03-06 15:19:00) [2]


> Антоныч_ск   (06.03.07 15:08) [16]
>

Так ведь эта самая твоя ситуация не имеет ничего общего с опциями сборки твоегоприложения)

Компонент-то этот поставляется, очевидно, в виде dcu+bpl. Эти самые dcu ужессылаются на bpl, и повлиять на этот факт манипуляциями упомянутого выше флага сборки ты никак не можешь, хоть из штанов выпрыгни)


Антоныч_ск   (2007-03-06 15:08:00) [3]

Рассказываю конкретно свою ситуацию. Я скачал компонент для доступа к Oracle: "Oracle Data Access Component". Всё работает просто супер, но есть одно но: пока этот компонент не зарегистрирован (trial version), 3 bpl-файла, необходимых для его работы, не включаются при компиляции в exe-шник. Собственно, и фиг с ними, :) но я хотел поместить их в отдельную папку, чтобы не мозолили глаза пользователям в основном каталоге с exe-шниками и вызывали ненужных глупых вопросов типа "А зачем?", "А что это?", "А можно удалить?" :)


Reindeer Moss Eater   (2007-03-06 10:23:00) [4]

Ладно, всё равно всем спасибо, буду размещать в том же каталоге...

Интересно, а зачем тогда вообще использовать bpl?


Антоныч_ск   (2007-03-06 10:22:00) [5]

Ладно, всё равно всем спасибо, буду размещать в том же каталоге...


DrPass   (2007-03-06 10:18:00) [6]


> см. [2]. Поэтому и спросил про regsvr32

Мало ли что где пишут...


Антоныч_ск   (2007-03-06 10:15:00) [7]

Сергей М.:
см. [2]. Поэтому и спросил про regsvr32, т.к. смутило, причём тут это :)


Reindeer Moss Eater   (2007-03-06 10:15:00) [8]

HKLM\Software\Microsoft\Windows\Current Version\App Path\<your_exe_name.exe>


Сергей М.   (2007-03-06 10:12:00) [9]


> Антоныч_ск   (06.03.07 10:08) [9]


> То есть, как я понял, без изменений настроек системы пользователя,
>  пусть даже временных, обойтись никак нельзя...


Конечно нельзя.
Системе же должен быть известен "алгоритм" поиска модулей, если они расположены по нестандартным путям..

А regsvr32 не имеет твоей задаче прямого отношения - эта утилита регистрирует только модули, в которых реализованы фабрики классов OLE/COM-серверов автоматизации.


Антоныч_ск   (2007-03-06 10:08:00) [10]

2 Сергей М:
Ну не хочу я в том же каталоге... хочу в отдельном, чтобы покрасивше было :)

То есть, как я понял, без изменений настроек системы пользователя, пусть даже временных, обойтись никак нельзя...


Антоныч_ск   (2007-03-06 10:05:00) [11]

То есть, при запуске программы придётся вызывать regsvr32 и регистрировать путь поиска dll-файлов. А если у пользователя ограничены права? Точно знаю, что с правами "User" regsvr32 посылает подальше.


Антоныч_ск   (2007-03-06 10:05:00) [12]

То есть, при запуске программы придётся вызывать regsvr32 и регистрировать путь поиска dll-файлов. А если у пользователя ограничены права? Точно знаю, что с правами "User" regsvr32 посылает подальше.


Сергей М.   (2007-03-06 10:04:00) [13]


> Антоныч_ск   (06.03.07 09:54) [3]


И в чем проблема ?

Если статически компонуемый модуль находится в том же каталоге, где размещен стартуемый исполняемый модуль, он будет найден загрузчиком автоматически ..


palva   (2007-03-06 10:03:00) [14]

То есть, либо положить в ту же директорию, что и exe, либо директория, в которой они лежат, должна быть прописана в PATH. Если модификация PATH по каким-то соображениям невозможна, то для запуска приложения можно составить bat файл из двух строчек. Первая модифицирует PATH (временно), вторая запускает приложение.


Reindeer Moss Eater   (2007-03-06 09:59:00) [15]

BPL ищутся системой там же, где ею ищутся DLL.


Антоныч_ск   (2007-03-06 09:54:00) [16]

Сергей М.:
Ну, значит я неправильно сформулировал, но факт в том, что exe-шник у меня идёт отдельно, и bpl-файлы к нему тоже отдельно :)

Ega23:
Можно поподробнее, не пойму, куда это всобачить-то :).


Ega23   (2007-03-06 09:46:00) [17]

regsvr32 /s ' + ExtractFileName(DllList.Strings[i])

И складывай их туда, где тебе хоцца.


Сергей М.   (2007-03-06 09:44:00) [18]

О каких bpl может идти речь, если ты сам сказал, что сборка приложения у тебя осуществляется безиспользования ран-тайм пакетов ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо