| 
| 
 | Вопрос # 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 (статус: Посетитель)Вопрос отправлен: 18 августа 2010, 16:41
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 6; последнее сообщение — 18 августа 2010, 19:56; участников в обсуждении: 2. 
|   | Вадим К (статус: Академик), 18 августа 2010, 16:57 [#1]:Теоретически, собрать все bpl в один файлик можно, придется сделать свой пакет и скомпилировать его. И если с сторонними библиотеками ещё как то это можно сделать, то с "системными" - накладно, как минимум лицензионное соглашение будет мешать. 
 С другой стороны, какой смысл в держании одной большой bpl - не знаю, да и суммарный размер больше будет.
 
 Итого, лучше не изобретать, взять bpl как есть или обходиться без них.
 
 Но если сильно-сильно хочется иметь один файл, то можно все bpl запаковать в архив и при старте приложения разворачивать, а по завершению - удалять. Но тут сколько подводных камней...
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | 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 (статус: Посетитель), 18 августа 2010, 18:37 [#4]:Вадим К. вот можно примерчик кода где прописывается переменная которая указывает что *.bpl  использовать именно в папке где я укажу( например Windows\winsxs\myprg\  . Спасибо за ответ.
 |  
|   | Вадим К (статус: Академик), 18 августа 2010, 18:46 [#5]:кусочек кода? вообще то это инсталлятор должен прописать. С самого приложения прописать себе путь к bpl не получиться - они подгружаются ещё до запуска приложения. Обычно это прописывается в настройках системы (правой кнопкой мыши по "мой компьютер", там свойста и где то на вкладках есть "переменные окружения")
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Sonic-X (статус: Посетитель), 18 августа 2010, 19:56 [#6]:Понял, спс, +1 в репу=)) |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |