powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Величина ресурса RCDATA в откомпиленном ехешнике
22 сообщений из 22, страница 1 из 1
Величина ресурса RCDATA в откомпиленном ехешнике
    #39396371
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С++Builder 6
Имею проект.
В составе проекта есть (добавлен) файл ресурса Data.rc
В Data.rc единственная строка:

SCR RCDATA "Scr.txt"

Файл Scr.txt - текстовый, ANSI, 1.5 Mgb.
Проект компилится без Error-ов и без Warning-ов.
Смотрю DUMP полученного ехешника и в нем только маленькая часть файла Scr.txt

А как, чтобы весь Scr.txt в ехешнике ???
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39396540
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PupkinА как, чтобы весь Scr.txt в ехешнике ???

Вообще, что-то мне смутно кажется, что размер одного ресурса вообще в принципе ограничен.
Поищи что там на MSDN пишут.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39396875
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PupkinА как, чтобы весь Scr.txt в ехешнике ???Может попробовать hardcode-ом?
resources.cpp, сгенерирован из файла Scr.txt
Код: plaintext
1.
2.
3.
4.
5.
extern const char* const _scr_txt =
"первая строка файла Scr.txt\n"
"вторая строка файла Scr.txt\n"
"...\n"
"последняя строка файла Scr.txt\n";

resources.h
Код: plaintext
1.
2.
3.
4.
5.
6.
#ifndef RESOURCES_H
#define RESOURCES_H

extern const char* const _scr_txt;

#endif

Компилятор «склеивает» рядом стоящие строковые литералы в один большой строковый литерал. Правда, не факт, что C++ Builder осилит 1.5 мб строковых литералов.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397072
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv...смутно кажется, что размер одного ресурса вообще в принципе ограничен.
Мне тоже смутно кажется, что ограничен то-ли 2, то-ли 4 Гб в сумме с исполняемой частью ехешника.
И это зависит от операционки (32 или 64). У меня - 64-ка. Мне кажется (смутно) , что мой случай - не тот.

MasterZivПоищи что там на MSDN пишут
Да обломился искать. Наверно, все еще пишут. "Ихо многа букаф" - не дописали пока.

Пётр СедовМожет попробовать hardcode-ом?
Компилятор «склеивает»
Знаете, есть много ЧерезЖоповых способов (в рамках и условиях задачи) загнать под Buildr-ом текст
внутрь ехешника. Например использовать текстовые свойства классов TListBox->Items, TMemo->Lines,
TQuery->SQL и т.п. Так и делаю (пока). Проблема не в том, чтобы загнать текст в ехешник, а в том,
чтобы загнать его туда через внешне-определяемый ресурс.

Почему именно так надо ???

Все просто !!! Программу пишу я. А файл выдумывает дядя Федя из Усть-Пердянского края,
причем с частотой 15 зкземпляров за 3 недели. Давать ему исходник для встраивания я не хочу - он не
программист. Встраивать его "творчество" в программу 17 раз за 5 недель я тоже не хочу.
Проще всего взять файл из ДядьФединого мейла, (переименовать, если надо), закинуть его в
каталог проекта и откомпилить без редактирования исходника.
-------
(Смутно) подозреваю, что крамолу нужно копать:
- где-то нужно изменить свойства проекта в Buildere (добавить размер);
- в ресурсный фай добавить строку типа "RCDATA SIZE 999999999"
- искать крамолу в самом windows моего компа (Win 7)

Крамола неизвестна, проблема не решена, всем спасибо.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397111
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему надо встраивать внутрь, почему нельзя не просто файл рядом положить?
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397181
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barlone почему нельзя просто файл рядом положить?

потому,что дядя Путин сказал мне отдать только ехешник третьему дяде Сидору без дядьФединого файла. А вобще-та, положить можно.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397204
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivPupkinА как, чтобы весь Scr.txt в ехешнике ???

Вообще, что-то мне смутно кажется, что размер одного ресурса вообще в принципе ограничен.
Поищи что там на MSDN пишут.
но не настолько, чтоб помешать топикстартеру
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397207
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PupkinС++Builder 6
А как, чтобы весь Scr.txt в ехешнике ???

Bin2Coff используй
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397219
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или для совсем тупых bin2h
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397258
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил или для совсем тупых

Да тупой я, совсем тупой.

И к чему их приткнуть, эти Bin-ы ???
Рассказали бы от своего корифейства.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397300
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bin2Coff - конвертирует твой файл в .obj который при сборке проекта можно прилинковать к твоей программе.
Как пользоваться описано тут

Bin2h - конвертирует файл в обычный сишный хидер, потом просто подключаешь его к программе и читаешь из массива текстовые строки. Но компиляцию проекта такой вариант сильно замедляет.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
//file auto-generated from ..\text\my.txt by bin2h.exe
size_t data_len = 57017;
unsigned char data[57017]=
{
	0x4D,0x5A,0x90,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,
	0x00,0xFF,0xFF,0x00,0x00,0xB8,0x00,0x00,0x00,0x00,0x00  
      ....
       ....



В обоих случаях, после компиляции твой файл окажется внутри EXE файла, и к нему легко получить доступ.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397317
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PupkinИзопропил или для совсем тупых

Да тупой я, совсем тупой.
я этого не писал.

посмотри кто у тебя ресурс режет - линкер или ресурс компилер
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397396
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так то можно совсем по простому: copy /b my.exe + my.txt
И немножко шаманства с exe header, чтобы найти начало прицепа
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397417
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропиля этого не писал.
Я редактируя не туда ткнул. Очень извините.

посмотри кто у тебя ресурс режет - линкер или ресурс компилер
Мысль очень хорошая, спасибо, этим сейчас займусь, и отпишусь
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397429
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EoltКонвертер в .obj или в .h
...после компиляции файл окажется внутри EXE файла, и к нему легко получить доступ.
Еще один способ из ЧерезЖоповых способов. Писал уже выше "о том - как" и о "том - зачем". Читали ли???

Проблема не в том, чтобы загнать текст в ехешник, а в том,
чтобы загнать его туда через внешне-определяемый ресурс. И лучше без изменения исходников.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397435
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BarloneНу так то можно совсем по простому
Пока подобно этому и делаю.
На форме стоит TMemo и в него закидываю текст через буфер обмена.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397493
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Pupkin]EoltИ лучше без изменения исходников. http://www.angusj.com/resourcehacker/ - ресурсы в ехе можно заменять не только без изменения исходников, а даже без перекомпиляции...
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397498
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И даже можно научить это делать дядю Федю...
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397537
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PupkinПроблема не в том, чтобы загнать текст в ехешник, а в том,
чтобы загнать его туда через внешне-определяемый ресурс. И лучше без изменения исходников.

Никакой проблемы нет, API функция UpdateResource позволяет поместить или удалить любую информацию в ресурсах.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397558
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PupkinС
А как, чтобы весь Scr.txt в ехешнике ???
Сделайте Build проекта.
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397632
Pupkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x1ca4064Сделайте Build проекта.
Окончательную компиляцию всегда делаю билдом
...
Рейтинг: 0 / 0
Величина ресурса RCDATA в откомпиленном ехешнике
    #39397654
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pupkin,

К сожалению, у меня нет сейчас билдера, поэтому я тестил на дельфи - линкер и компилятор ресурсов у них, вероятно, похожи. Файл в 6Мб замечательно попал в exe. Если изменить файл, который должен попасть в ресурс и не делать билд (только компиляцию), то в exe попадает старая версия (из res файла).

Может опубликуете тестовый проект, демонстрирующий возникновение проблемы?
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Величина ресурса RCDATA в откомпиленном ехешнике
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]