Избавиться от мусора в .exe

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Избавиться от мусора в .exe

Сообщение Troublemaker » 27.04.2008 11:46:10

Про strip для удаления отладочной информации знают все. Но посмотрел я готовый .exe и вижу в нем иконки от использованных компонентов, например, от TDBF И TMEMds.

Можно ли их как-то удалить?
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Сообщение Brainenjii » 27.04.2008 14:38:48

Restorator? ^_^

// ещё smartlink попробовать можно... А вообще - непойму, неужели размер бинарника критичен?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Troublemaker » 27.04.2008 14:50:05

Размер бинарника критичен - возможно, его придется пересылать по электронке, и я вынужден исходить из того, что
1. сотня студентов, скачавших, скажем, по 10 мегов, съедят гиг трафика
2. передача 10 мегов в письме будет обозначать письмо около 15 мегов длиной, что практически не реально сделать диалапом - smtp не поддерживает докачку.

С другой стороны, а на фига там вообще эти данные? Посмотрел и поразился - куча информации в текстовом виде, которая вполне могла бы храниться в двоичном или вообще вырезаться при линковке.

Что до упомянутых иконок, то они не смутили бы меня, будь они в двоичном виде, но не в таком:

Код: Выделить всё
static char *tsdfdataset[]={
"22 23 51 1",
"a c #000000",
"t c #000008",
"s c #000010",
"b c #000400",
"c c #000408",
"u c #000410",
"J c #000800",
"v c #000810",
"K c #000c00",
"# c #080408",
"V c #080800",
"T c #080808",
"r c #080c00",
"E c #205dff",
"H c #296929",
"i c #bdbebd",
"n c #bdbec5",
"O c #bdbecd",
"I c #bdc2c5",
"M c #bdc2cd",
"q c #c5c2bd",
"f c #c5c2c5",
"o c #c5c2cd",
"d c #c5c6c5",
"h c #c5c6cd",
"S c #c5c6d5",
"p c #c5cabd",
"U c #c5cad5",
"m c #c5ceb4",
"w c #c5cec5",
"j c #cdc6cd",
"k c #cdcacd",
"g c #cdcad5",
"l c #cdceb4",
"G c #cdcec5",
"e c #cdcecd",
"Q c #e6eeff",
"R c #eee6ff",
"D c #eeeaff",
"A c #eeeeff",
"N c #eef6ff",
"y c #f6f2ff",
"C c #f6f6ee",
"B c #f6f6ff",
"z c #f6faff",
"P c #f6ffff",
"F c #fff2ff",
"L c #fff6ff",
"W c #fffaf6",
"x c #fffaff",
". c #ffffff",
".#aaaaaaabaaabacaabaa.",
".adbefghhiejklmnoplqa.",
".braassstabaaabuvtabb.",
".awa.xyx..ky.z.ABxy.a.",
".aCb.xxDx.d..EEEEEF.b.",
".aGb.HHHH.I.EEEEEEE.a.",
".JCK.ByLL.M.EENzLEE.a.",
".awazHHHH.O..PPQEEEBJ.",
".a.c.xRLAxS..BzEEEB.a.",
".TdazHHHH.UBz.EEExx.a.",
".a.c.xxAL.o...EExA..a.",
".Vda.HHHHBh.yyEEx...a.",
".azc..B...nW.xBx.B.xa.",
".aea.x.B.xk.xxEE...xc.",
".aaTaaactttts.EE.caac.",
"......................",
".EEEE.E.E...E.EEE.EE..",
".E....E..E.E..E...E.E.",
".E....E...E...EE..E.E.",
".EEE..E...E...E...E.E.",
".E....E..E.E..E...E.E.",
".E....E.E...E.EEE.EE..",
"......................"};

Насчет смартлинка - попробую, разумеется. Может быть сразу подскажете ключик для "параметров компилятора"?
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Сообщение ev » 27.04.2008 15:52:27

Размер бинарника критичен - возможно, его придется пересылать по электронке, и я вынужден исходить из того, что

бинарник можно архивировать
зачем слать по почте сам файл? можно ведь просто ссылку на скачку ;)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение Troublemaker » 27.04.2008 16:15:56

ev писал(а):зачем слать по почте сам файл? можно ведь просто ссылку на скачку ;)
Выбор способа получения - за пользователем, и моя задача - сделать этот выбор достаточно широким. Например, у кого-то на работе может быть электронка, но нет доступа в тырнет, ы?
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Сообщение Troublemaker » 27.04.2008 16:19:48

Brainenjii писал(а):ещё smartlink попробовать можно...
Попробовал. На обеих вкладках - и -CX, и -XX... Бесполезно - иконки так и остались внутри файла... :(
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Сообщение ev » 27.04.2008 16:25:25

Выбор способа получения - за пользователем, и моя задача - сделать этот выбор достаточно широким.

тогда надо заготавливать болванки и конверты - ведь у человека может не быть вообще интернета ;)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение NXP » 27.04.2008 16:30:35

Troublemaker
upx -9 твой.exe

+сделать загружалку ресурсов из вне (выкинуть форму из exe)
грузить ее из сжатого вида через TDecompressionStream или 7z :lol:
http://freepascal.ru/forum/viewtopic.php?t=3285
http://freepascal.ru/forum/viewtopic.php?t=2739
Загружалку я собираюсь сделать, да руки не доходят :D

Я так понимаю, юзаться все будет под вендой. В таком случае можно и Delphi взять. С размерами у нее будет получше :?
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Сообщение Troublemaker » 27.04.2008 16:49:38

NXP писал(а):+сделать загружалку ресурсов из вне (выкинуть форму из exe)
грузить ее из сжатого вида через TDecompressionStream или 7z
...
Я так понимаю, юзаться все будет под вендой. В таком случае можно и Delphi взять. С размерами у нее будет получше :?
Ы-ы... :cry:
Уважаемый, пожалуйста, прочтите внимательно начало треда? Тогда поймете, почему ваш ответ лишен всякого смысла.

Из соседнего треда "основы работы с БД" подскажу, что система должна:

1. быть разработана с использованием некоммерческих инструментов (дельфи отпадает)
2. работать как минимум в винде и линуксе (дельфи отпадает с треском и грохотом)
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Re: Избавиться от мусора в .exe

Сообщение alexs » 28.04.2008 08:24:15

Troublemaker писал(а):Что до упомянутых иконок, то они не смутили бы меня, будь они в двоичном виде, но не в таком:

Я уже раз писал об этом - необходимо открыть исходный код проекта и удалить из секции uses - все ссылки на пакеты. Полегчает.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Избавиться от мусора в .exe

Сообщение Troublemaker » 28.04.2008 10:29:32

alexs писал(а):необходимо открыть исходный код проекта и удалить из секции uses - все ссылки на пакеты. Полегчает.

Это какой именно файл?

lpr:
Код: Выделить всё
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces
  Forms
  { you can add units after this }, testmemds_u, {MemDSLaz,}
  RunTimeTypeInfoControls;

testmemds_u.pp
Код: Выделить всё
uses
  Classes, SysUtils, LResources, Forms, Controls, {Graphics,} Dialogs, StdCtrls,
  db, memds, DBGrids, DbCtrls;

И что здесь надо убрать?
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Re: Избавиться от мусора в .exe

Сообщение alexs » 28.04.2008 10:50:37

MemDSLaz, - ты его уже зеремил
RunTimeTypeInfoControls - вот это подозрительно.

Но мой совет ещё зависит от правильности разработки самой компоненты. в RxFPC я вынес все ресуры которые не нужны во время работы програмы, а нужны только IDE Lazarus-а в отдельны пакет и модули.
Если же ресурсы времени разработки находятся в модулях времени работы - то совет не поможет.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Избавиться от мусора в .exe

Сообщение Troublemaker » 28.04.2008 11:02:51

alexs писал(а):RunTimeTypeInfoControls - вот это подозрительно.

Н-да... после его удаления объем .exe с дебаг-инфо уменьшился с 19 до 13 мегов... И исчез весь тот мусор, о котором я говорил, осталось только действительно нужное.

Теперь в развитие темы: хранить ресурсы в исполняемом файле в виде XPM (читай - в виде плайн-текста) удобно, наверное, но накладно: и места требуется больше, и вместо загрузки готового битмапа приходится заниматься его интерпретацией, да и легче исковеркать "изображение".

Есть ли какой-нибудь штатный способ сделать, например, так: вместо вложенных XPM с тремя видами чекбоксов (sbsCheckBox) в гриде, привязать к проекту три несжатых однобитных (8 точек на байт) bitmap-а? И чтобы оно отображалось как в винде, так и под линуксом?

Вообще, буду признателен за ссылку на что-нибудь для начинающих именно в дельфи, чтобы понять идеологию. Мне не требуется глубокое изучение этой системы, главное - успеть за месяц нарисовать свой проект, защититься и спокойно умереть :)

А чтобы можно было понять меня, предлагаю сравнить документацию по архиватору ARJ и по, скажем, 7zip. Юнг спокойно и методично разъясняет назначение каждого параметра и ключа, приводя по одному-два, иногда - больше, характерных примера. Рошал тоже не скромничает, а вот к более новым программам идет описание в духе: "этот ключ делает то-то." При этом невозможно прояснить, как и что будет происходить в любой другой ситуации. Ну, скажем, что сделает архиватор в случае нехватки места на диске? RAR и 7zip умрут, ARJ и старичок UC2 (если дать соотв. ключики) предложат выйти в шелл и разобраться, куда делось место, чтобы потом продолжить. Брр... надеюсь, это можно понять :)
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

Re: Избавиться от мусора в .exe

Сообщение alexs » 28.04.2008 13:40:43

Если тебе это нужно только разово - зачем ты так печёшся оразмере?
Чтобы брать те ресурсы необходимо переписать модуль dbgrids - и желательно сконвертироватьих в png. По большей части они кстати и не используются - просто установи стиль Native у DBGrid-а - и чекбоксы будут рисоваться в соответствии с текущей темой твоей операционки.
Насчёт документации для дельфина - посмотри на delphiplus ссылки - там много. также загляни в королевство дельфи.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Избавиться от мусора в .exe

Сообщение Troublemaker » 28.04.2008 14:15:17

alexs писал(а):Если тебе это нужно только разово - зачем ты так печёшся оразмере?
См.выше - не исключено, что потом это будет и в самом деле использоваться в "боевых" условиях.

alexs писал(а):установи стиль Native у DBGrid-а
Гм... попробую, обязательно.
Аватара пользователя
Troublemaker
постоялец
 
Сообщения: 292
Зарегистрирован: 16.04.2008 13:00:44
Откуда: Биробиджан, Дальний Восток

След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

Рейтинг@Mail.ru
cron