|
2 / 2 / 0
Регистрация: 26.03.2020
Сообщений: 41
|
|
VB6. Как обойти ошибку Out of memory?08.04.2020, 22:26. Показов 6326. Ответов 27
Игры, программы, фильмы ..... имеют большие файлы разного формата. И я хочу, чтобы мой *.exe файл (мой проект) был большим. Я хочу в нём хранить и звуковые файлы, и рисунки, и всё что необходимо моему проекту для качественной работу в компьютере у пользователя. Если оперативной памяти мало, то пусть мой проект зависает как большие игры на слабых компьютерах. Почему всем можно, а мне нельзя? Почему ты запрещаешь мне?
Вот эти слова я много раз повторял Visual-у Basic-у 6.0, но он упёрся при компиляции *.exe файла и говорит мне: Мне не удалось убедить то, что мне так нравится. Уважаемые программисты, может у Вас получится? Ведь на другой язык программирования я переходить не хочу.
0
|
|
| 08.04.2020, 22:26 | |
|
Ответы с готовыми решениями:
27
Помогите, пожалуйста, обойти проблему: Out of memory
Как обойти ошибку? |
|
sleep
4930 / 4590 / 840
Регистрация: 13.04.2015
Сообщений: 9,743
|
||
| 08.04.2020, 22:38 | ||
|
0
|
||
|
Супер-модератор
|
|
| 09.04.2020, 07:54 | |
|
Anti_All, вопрос несерьезен. Это то же самое, что спросить врача на форуме: почему у меня нога болит? Может быть много причин. Без характеристик проекта вам никто не поможет.
0
|
|
|
Модератор
|
|||
| 09.04.2020, 10:23 | |||
|
2
|
|||
|
2 / 2 / 0
Регистрация: 26.03.2020
Сообщений: 41
|
|||||
| 09.04.2020, 12:32 [ТС] | |||||
|
0
|
|||||
|
Супер-модератор
|
|
| 09.04.2020, 12:44 | |
|
Anti_All, непонятен Ваш пафос... Не получается? Решайте проблему. Хотите совета? Представьте исходные данные.
В exe-файле можно хранить что угодно и в довольно больших объемах. Технология примерно такая. Собираете необходимые данные в двоичный файл (какую-нибудь структуру соорудите для него). Потом приливаете эти данные к самому экзешнику (это вполне допустимо). Когда экзешник запускается, он может открыть сам себя на чтение и прочитать из своего хвоста любые данные. Я это неоднократно делал. Примерно так.
0
|
|
|
|
||
| 09.04.2020, 14:14 | ||
|
1 Каким образом вы пытаетесь это сделать? 2 О каких объемах (примерно) идет речь?
0
|
||
|
2 / 2 / 0
Регистрация: 26.03.2020
Сообщений: 41
|
||||
| 09.04.2020, 14:28 [ТС] | ||||
|
Catstail, я не совсем понимаю смысл слова в "хвосте". Это какой-то отдельный файл? Или он находится в *.exe файле, но при загрузке проекта остаётся ждать пока к нему не обратится проект, тем самым не загружая память при загрузке проекта.
Добавлено через 10 минут Добавлено через 1 минуту
0
|
||||
|
2 / 2 / 0
Регистрация: 26.03.2020
Сообщений: 41
|
|
| 09.04.2020, 15:46 [ТС] | |
|
Если ещё кто-то напишет “хвост”, то я перенесу инсульт.
А можно пример? Чтобы посмотреть и понять, как это работает. Например, пусть будет 3 файла, ну или 1 файл (просто я ещё не совсем понял, как работать с “хвостом”): Первый файл *.exe файл (мой проект); Второй файл (ну или “хвост”), файл который хранит в себе 3 *.jpg файла; Третий файл (ну или “хвост”), файл который хранит в себе 3 *.wav файла; Нажимаю на одну кнопку в форме - в Image1.Picture передаётся картинка с файла *.jpg, нажимаю ещё раз, передаётся следующая картинка с файла *.jpg; Нажимаю на другую кнопку - воспроизводится звук с *.wav файла, нажимаю ещё раз, воспроизводится следующий звук с *.wav файла. Но данные файлы (ну или “хвосты”) не должны открывать, извлекать ни какой сторонний проект, кроме моего проекта.
0
|
|
|
Модератор
|
|
| 09.04.2020, 17:44 | |
|
Anti_All, определяете размер EXE (посредством чтения секций файла, анализируя IMAGE_SECTION_HEADER.PointerToRawData и IMAGE_SECTION_HEADER.SizeOfRawData). После самой последней секции пишите свои данные в формате который позволит прочитать их (по имени/индексу). Самый простой вариант - это записать содержимое PropertyBag в котором будут записаны нужные данные. Как минимум это позволит с легкостью читать Persistent-объекты типа StdPicture, Font, данные контролов, любые бинарные данные (в том числе и музыку).
Альтернативно можно вместо PropertyBag записать OLE Compound File Storage, это чуть сложнее, но позволит использовать целую файловую систему внутри файла. Для отладки используйте внешний файл с данными, а в Релиз-билде уже с помощью внешней утилиты записывайте данные в файл (подойдет простой батник который объединяет файлы в один).
2
|
|
|
sleep
4930 / 4590 / 840
Регистрация: 13.04.2015
Сообщений: 9,743
|
|
| 09.04.2020, 17:50 | |
|
0
|
|
|
Супер-модератор
|
|||||||||||
| 09.04.2020, 18:48 | |||||||||||
Сообщение было отмечено Anti_All как решение
Решение
Anti_All, вот простой код. Рабочий. Разбирайся:
1) Распаковать архив 2) перетранслировать t123 3) выполнить командный файл addData.cmd (Он добавить в ХВОСТ t123 ее собственный исходник) 4) запустить t123.exe и убедиться, что распечатается исходник (без открытия доп. файлов)
2
|
|||||||||||
|
|
|||
| 09.04.2020, 19:44 | |||
|
А вот
0
|
|||
|
|
|
| 09.04.2020, 20:41 | |
|
0
|
|
|
Супер-модератор
|
||||||
| 09.04.2020, 21:00 | ||||||
Сообщение было отмечено Anti_All как решение
Решение
Ну вот:
1
|
||||||
|
|
||
| 09.04.2020, 21:51 | ||
|
Должен же быть способ загрузить прямо из участка памяти изображение в Image? На PureBasic это делается одной командой, значит это возможно с точки зрения системы, просто мы не знаем как?
0
|
||
|
Супер-модератор
|
|
| 10.04.2020, 10:25 | |
|
Да, способ должен быть
Добавлено через 1 час 14 минут The trick, объединить-то - да, но придется еще оглавление создавать...
0
|
|
| 10.04.2020, 10:25 | |
|
Помогаю со студенческими работами здесь
20
Как победить ошибку Out of memory? Как обойти ошибку 207? XMLHttpRequest. как обойти ошибку? Как обойти ошибку Warning: file_get_contents? Как можно обойти эту ошибку ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|