Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2014, 09:42   #1
STRELOK-2007
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 144
Вопрос Размер ActiveX Library в Delphi XE5

Приветствую!

Заметил, что релизный вариант Activex Library, содержащей один COM сервер, один COM объект с одним интерфейсом, имеющим один простой метод - занимает больше, чем VCL-приложение, являющегося клиентом!
2,3мб против 2.1мб!
Это-же очень много!

После изучения, оказалось, что библиотека таскает с собой ненужные модули StdVCL и Graphics. Убрал, скомпилировал.
Больше кажется ничего не уберешь, все нужно.

Размер стал 1.2мб. Серьезное изменение, но все равно много!

Можно ли еще что-то сделать?

p.s.
Сжимал VMProtect-ом, размер стал 960кб.
STRELOK-2007 вне форума Ответить с цитированием
Старый 06.02.2014, 10:15   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Сам вырежи полезный код, и решишь проблему) Компилятор этого не умеет.
Человек_Борща вне форума Ответить с цитированием
Старый 06.02.2014, 18:59   #3
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Интересно, запустится ли такое приложение на компьютере, где нет делфи?
doktor255 вне форума Ответить с цитированием
Старый 06.02.2014, 19:04   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Да. Всегда так делаю когда надо достичь бинарника больших возможностей и маленького размера(~40-80 кб). Очень рутинная работа, но оно того стоит) И работает очень даже ничего, где угодно и как должно. И упаковщики не нужны.

Последний раз редактировалось Человек_Борща; 06.02.2014 в 19:06.
Человек_Борща вне форума Ответить с цитированием
Старый 06.02.2014, 19:07   #5
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

А можно посмотреть алгоритм этой самой рутинной работы (в подробностях)? Часто скидываю свои проекты людям, и не очень престижно отдавать простой проект весом под 5 мегабайт.
doktor255 вне форума Ответить с цитированием
Старый 06.02.2014, 19:12   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Да. Всегда так делаю когда надо достичь бинарника больших возможностей и маленького размера(~40-80 кб). Очень рутинная работа, но оно того стоит) И работает очень даже ничего.
с COM объектами такое не выйдет, они завязаны интерфейсами... один вставишь, но в методах использует следующий, а этот еще один, и так до бесконечности...
ZuBy вне форума Ответить с цитированием
Старый 06.02.2014, 19:13   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Банально выпиливаешь модуль Windows из Uses, видишь кучу красного(в XE версиях есть)), отмечаешь это) Создаёшь модуль uSmall_Windows и начинаешь туда копипастить из оригинального Windows.pas все что используешь в своём проекте.

В итоге у тебя Windows.pas, но уже в рамках твоего проекта и не большого размера, а оригинальный уже не нужен.
Человек_Борща вне форума Ответить с цитированием
Старый 06.02.2014, 19:39   #8
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Выпилил Uses до такого содержания
Код:
unit Unit1;

interface

uses
  Vcl.Forms;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
Компилируемый код как был под 2 мегабайта, так и остался. Что я сделал не так?
doktor255 вне форума Ответить с цитированием
Старый 06.02.2014, 19:42   #9
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

VCL.Froms много весит, теперь то что выпилил, добавь в WinAPI проекту
увидишь результата
ZuBy вне форума Ответить с цитированием
Старый 06.02.2014, 19:50   #10
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Зачем мне куда-то что-то добавлять, если я хочу уменьшить размер конкретно этого приложения???
doktor255 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi xe5 + android + BD MAZADA БД в Delphi 2 05.02.2014 10:14
delphi xe5 TUberwer Общие вопросы Delphi 2 01.02.2014 00:25
Delphi XE5 и iOS Simon1712 Общие вопросы Delphi 1 24.01.2014 09:50
Embarcadero Delphi XE5 novicepro Общие вопросы Delphi 2 02.11.2013 19:11
Delphi XE5 +Android приложения furstenberg Общие вопросы Delphi 4 30.10.2013 11:09