Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 511

/ вопрос открыт /

Здравствуйте важаемые эксперты!
Прочитал недавно на форуме ru-board такую вещь:
цитата:"EXEшник Delphi, в отличии от VSC++ EXEшника, не требует бредовых 239084 метровых Redistributive пакетов и работает AS IS. Выключите у себя в VSC++ проекте RTL и всё, привет 4мб+ EXEшник с голой MFCшной формой - браво. Включите в Delphi проекте "Build with Runtime packages" и привет 21кб EXEшник. Только придётся обзавестись Redistributable пакетами (читай, самим собрать)"
Я такое уже пробовал, (использовалась в пограмме библиотека DevExpress), но у меня этих пакетов получилась вагон и маленькая тележка в папке с программой(можно вроде и в системную директорию копировать), так вот вопрос, можно "кучу" этих пакетов объеденить в один, и если можно то как?
спасибо за ответ.

Sonic-X Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Sonic-X (статус: Посетитель)
Вопрос отправлен: 18 августа 2010, 16:41
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 18 августа 2010, 19:56; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 18 августа 2010, 16:57 [#1]:

Теоретически, собрать все bpl в один файлик можно, придется сделать свой пакет и скомпилировать его. И если с сторонними библиотеками ещё как то это можно сделать, то с "системными" - накладно, как минимум лицензионное соглашение будет мешать.

С другой стороны, какой смысл в держании одной большой bpl - не знаю, да и суммарный размер больше будет.

Итого, лучше не изобретать, взять bpl как есть или обходиться без них.

Но если сильно-сильно хочется иметь один файл, то можно все bpl запаковать в архив и при старте приложения разворачивать, а по завершению - удалять. Но тут сколько подводных камней...
Галочка "подтверждения прочтения" - вселенское зло.
Sonic-X

Sonic-X (статус: Посетитель), 18 августа 2010, 17:12 [#2]:

Вадим К. спасибо за ответ, сейчас подумав, одна большая *.bpl, действительно косяк, да и гемор это.
Тогда перефразируем немного вопрос, если не ошибаюсь Redistributable VisualStudio хxxx, копируются в папку Windows\winsxs, тогда можно ли моему приложению указать- "используй пакеты" из папки, например Windows\winsxs\myprg\. Ну не хочу я их копировать в папку приложения или в System32.
Вадим К

Вадим К (статус: Академик), 18 августа 2010, 18:26 [#3]:

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

Но если захотеть, то можно положить свои библиотеки в укромное место. для этого нужно знать, как происходит поиск библиотек
* Каталог, в котором находится исполняемый модуль текущего процесса.
* Текущий каталог.
* Системный каталог Windows.Путь к этому каталогу извлекается с помощью функции GetSystemDirectory.
* Каталог Windows.Путь к этому каталогу извлекается с помощью функции GetWindowsDirectory.
* Каталоги, указанные в переменной среды PATH.

Тут мы можем применить только последний пункт. То есть либо вручную прописать эту переменную (можно и кодом), а можно в свойствах ярлыка прописать каталог:)
Галочка "подтверждения прочтения" - вселенское зло.
Sonic-X

Sonic-X (статус: Посетитель), 18 августа 2010, 18:37 [#4]:

Вадим К. вот можно примерчик кода где прописывается переменная которая указывает что *.bpl использовать именно в папке где я укажу( например Windows\winsxs\myprg\;).
Спасибо за ответ.
Вадим К

Вадим К (статус: Академик), 18 августа 2010, 18:46 [#5]:

кусочек кода? вообще то это инсталлятор должен прописать. С самого приложения прописать себе путь к bpl не получиться - они подгружаются ещё до запуска приложения.
Обычно это прописывается в настройках системы (правой кнопкой мыши по "мой компьютер", там свойста и где то на вкладках есть "переменные окружения")
Галочка "подтверждения прочтения" - вселенское зло.
Sonic-X

Sonic-X (статус: Посетитель), 18 августа 2010, 19:56 [#6]:

Понял, спс, +1 в репу=))

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:58
Выполнено за 0.02 сек.