Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.12.2009, 10:13
vigard373 vigard373 вне форума
Прохожий
 
Регистрация: 23.12.2009
Адрес: Петербург
Сообщения: 12
Репутация: 10
По умолчанию Файлы rtl70.bpl vcl70.bpl зачем они нужны?

Новая откомпилированная программа работает нормально, но стоило мне дать её другу и на его windows файл не запустился и потребовались эти файлы: rtl70.bpl vcl70.bpl , которые размещаются у меня в папке ../system32/

Похоже эти файлы используются самим Delphi и устанавливаются в system32 при инсталляции.

У меня вопрос, как избежать необходимости в этих файлах (их объём около 2Мб)? Неужели к каждой программе их прилагать?
Ответить с цитированием
  #2  
Старый 31.12.2009, 10:43
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

В этих файлах хранится все необходимое для работы VCL компонетнов и прочего в вашем приложении. Без этой информации работать программа не будет. Решение есть: либо вместе с программой таскать эти файлы. Либо можно скомпилировать exe'шник так, чтобы вся нужная информация была в нем. Для этого нужно кое-что изменить в свойствах Вашего проекта. А именно:
1) Выберите пункт меню Project|Options;
2) Перейдите на вкладку Packages и снимите там флажок Build with runtime packages.
Есть один минус в том, что Ваш exe'шник после компиляции будет весить значительно больше. Этого тоже можно избежать, пока не скажу, как.
Ответить с цитированием
  #3  
Старый 31.12.2009, 10:47
vigard373 vigard373 вне форума
Прохожий
 
Регистрация: 23.12.2009
Адрес: Петербург
Сообщения: 12
Репутация: 10
По умолчанию

Это, наверное, вы на Win API намекаете..!? Ну что жжж... рано или поздно - освою обязательно!

Последний раз редактировалось vigard373, 31.12.2009 в 10:59.
Ответить с цитированием
  #4  
Старый 31.12.2009, 11:47
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Не, я не о WinAPI. Есть одна утилитка, которая выбрасывает из exe'шника всю ненужную информацию и сжимает файл. Например, у нас на работе exe-файл сжимается с 1,5 Мб до 200 Кб. Называется утилита upx.

Последний раз редактировалось Kapitoshka438, 31.12.2009 в 11:50.
Ответить с цитированием
  #5  
Старый 31.12.2009, 12:01
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
при компилировании этот модуль включится в exe'шник полностью со всеми функциями и процедурами
Видимо у вас вырублена оптимизация при компилировании, иначе такого быть не должно. А upx - это упаковщик, он ничего не выбрасывает, а только упаковывает ваш файл, дописывает в начало файла свой загрузчик и переименовывает полученного симбиота в то-же имя. Итоговый файл действительно получается меньше, но совсем по другим причинам. А при старте программы запускается вложенный загрузчик который распаковывает основную программу, но за счет того, что упакованный файл получается меньше и соответственно грузится в память быстрее выигрыш в скорости загрузки получается существенный. Общий размер-же занимаемый программой в памяти, как до так и после использования upx останется неизменным.
Кроме того, работа этой утили не гарарантирует 100% совместимость с любой прогой.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 31.12.2009 в 17:45.
Ответить с цитированием
  #6  
Старый 31.12.2009, 15:02
Аватар для Vayrus
Vayrus Vayrus вне форума
Исполняемый Ретровирус
 
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
Восклицание

Цитата:
Сообщение от Страдалецъ
Видимо у вас вырублена оптимизация при компилировании, иначе такого быть не должно. А upx - это упаковщик, он ничего не выбрасывает, а только упаковывает ваш файл, дописывает в начало файла свой загрузчик и переименовывает полученного симбиота в то-же имя. Итоговый файл действительно получается меньше, но совсем по другим причинам. А при старте программы запускается вложенный загрузчик который распаковывает основную программу, но за счет того, что упакованный файл получается меньше и соответственно грузится в память быстрее выигрыш в скорости загрузки получается существенный. Общий размер-же занимаемый программой в памяти, как до так и после использования upx останется неизменным.
Кроме того, работа этой утили не рарантирует 100% совместимость с любой прогой.

Поправлю, UPX именно уменьшает размер файла на диске, но при этом незначительно уменьшает скорость загрузки файла в память, те запуск медленнее, но его загрузчик так хорош, что это совсем незаметно, что не сказать, например, о загрузчике ASPack. И еще, UPX наверно самый лучший паковщик из всех что есть на сегодняшний день, совместим со многими форматами, универсален, и несовместимости встречаются ооочень редко.
Ответить с цитированием
  #7  
Старый 04.09.2010, 16:29
Nika Nika вне форума
Прохожий
 
Регистрация: 04.09.2010
Сообщения: 1
Репутация: 10
По умолчанию rtl70,vcl70

Интересно,что на прежнем компе на 32-битовой платформе они сами прогрузились из загрузчика,а на 64-битовой почему-то они с того же загрузчика не прогружаются... Почему?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025