![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
пути поиска 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 может идти речь, если ты сам сказал, что сборка приложения у тебя осуществляется безиспользования ран-тайм пакетов ?