Вверх ↑
Этот топик читают: Гость
Ответов: 204
Рейтинг: 2
#1: 2017-03-23 17:10:47 ЛС | профиль | цитата
Делаю иснтал программы, чтобы вместо кучи файлов был один .exe файл в качестве инсталятора. общий вес около 320мб.
Файлы храню в MemoryStream, проблема в том что если общий объём файлов превышает 50 мб. программа не компилируется пишет ошибку: Error: RLINK32: Error reading file "C:\Program Files (x86)\HiAsm_AltBuild\Elements\delphi\code\allres.res"

При этом если объем меньше,то проблем не возникает! Как быть в этой ситуации???

Редактировалось 1 раз(а), последний 2017-03-23 17:11:27
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 4612
Рейтинг: 746
#2: 2017-03-23 18:12:02 ЛС | профиль | цитата
Сначала компилировать exe, затем другой программой дописывать в конец этого экзешника свой файл, а после файла - размер исходного exe (в виде Integer, 4 байта). Для извлечения в том exe нужно считать последние 4 байта "самого себя" - это будет размер "себя". При чтении пропустить это количество от начала "себя" - достигнется начало прикрепленного файла. Размер прикрепленного файла - "размер себя" минус "4" минус "значение ранее считанных последних 4 байт".
карма: 26

0
Разработчик
Ответов: 4697
Рейтинг: 426
#3: 2017-03-24 17:09:20 ЛС | профиль | цитата
Давно делал создатель инсталляторов на HiAsm, можете посмотреть здесь
карма: 10
0
Ответов: 204
Рейтинг: 2
#4: 2017-03-24 20:43:13 ЛС | профиль | цитата
спасибо, буду разбираться.
Вообще очень странно что в MemoryStream нельзя хранить большие файлы. Ведь есть множество файлов больших размеров от фотографий до 3D моделей которые может потребоваться сохранить в памяти. И тут такая засада. 50мб и не больше!
карма: 1

0
Разработчик
Ответов: 4697
Рейтинг: 426
#5: 2017-03-24 20:52:03 ЛС | профиль | цитата
ogrif писал(а):
Ведь есть множество файлов больших размеров от фотографий до 3D моделей которые может потребоваться сохранить в памяти

Все подобные файлы обычно как раз внешними ресурсами идут, а не встроенными в exe. Если же все же необходимо иметь один цельный exe со всеми этими большими файлами в придачу, то обычно делают самораспаковывающийся exe, который прозрачно для пользователя распаковывает необходимый набор файлов во временную директорию системы и оттуда уже запускается реальная программа. А самораспаковывающийся exe собирается примерно теми же методами, что выше были описаны Netspirit-ом или у меня в схеме.

Редактировалось 1 раз(а), последний 2017-03-24 20:53:12
карма: 10
0
Ответов: 1924
Рейтинг: 172
#6: 2017-03-25 12:47:57 ЛС | профиль | цитата
Или можешь посмотреть мой компонент: http://forum.hiasm.com/topic/12009 и http://forum.hiasm.com/post/82040

Редактировалось 3 раз(а), последний 2017-03-25 12:49:21
карма: 9
0
Ответов: 204
Рейтинг: 2
#7: 2017-03-27 16:41:22 ЛС | профиль | цитата
3042 писал(а):
Или можешь посмотреть мой компонент:

спасибо, попробую.
карма: 1

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)