|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.05.2011, 16:29 | #1 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
конец программы в *.ехе
всем привет!
как объяснить программе, что она закончилась? т.е. есть готовый *.exe и нужно в этот файл дописать пару строк (в конец) проблема в том что когда их дописываешь и запускаешь программу, она пытается выполнить новые строчки как собственный код. и вылетает с ошибкой. что нужно дописать в конец ехе, что он не пытался дальше выполнять свое содержимое? как дописываются обычные ресурсы? может написать что-то что бы сообщало программе что сейчас начнутся ресурсы и их не нужно выполнять? |
24.05.2011, 16:31 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> она пытается выполнить новые строчки как собственный код
ничего подобного, программа не такая тупая. проблема, очевидно, в чём-то другом.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
24.05.2011, 16:35 | #3 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
честно говоря, может и в другом, ибо когда я новые строчки дописываю,
глюки начинаются еще до запуска программы - например пропадает значок проги. |
24.05.2011, 18:04 | #4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
скорей всего мимо запись идёт
проще всего проверить в командной строке: > copy /b myapp.exe + anydata.txt myapp.exe эта команда склеит 2 файла и запишет результат в myapp.exe после этого myapp.exe должен продолжать запускаться и иконка никуда не пропадать а чтобы добавить свой ресурс, достаточно скомпилить его с помощью rc или brcc32 и добавить в код проекта: {$R myresource.res }
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
24.05.2011, 19:13 | #5 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
"скорей всего мимо запись идёт"
мне по идее не надо тупо склеить файлы, а надо дописать их по определенным правилам, с соответствующим синтаксисом (их ведь потом использовать как-то надо) я прогу писал для добавления. while not EOF(test) do read(test); write(test2); а после того как файл перепишется, дописываю туда следующий: write(test2); и кстати блокнотом открывал, смотрел - все правильно дописывается. |
24.05.2011, 22:57 | #6 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Может вы задачу опишете (какой функционал надо реализовать)? А то по описанию похоже, что вы какого-то страшного монстра лепите.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
25.05.2011, 00:29 | #7 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
ну я в силу своих особенностей по определению могу лепить только монстров (бгг!)
а вообще ресурсы... мне нужно тупо зашить в ехе-шник картинку, чтоб потом ее можно было загрузить в битмап. да, я догадываюсь куда вы хотите меня послать... мол типа почитай про создание ресурсов, ведь это так просто, или например кинь на форму TImage и загрузи в него битмап на этапе разработки. но это все не канает, в противном случае я бы давно так сделал. я попробовал добавить ресурс (текстовый файл с 'bugoga!') стандартными средствами, потом найти его в скомпиленом ехе - не нашел. не канает. в итоге придумал такой способ: res:='мой ресурс, содержимое нужных файлов'; т.е. можно на этапе разработки прямо в код в виде переменной записать символы из нужного файла =) правда возникает проблема 255, но она решаема: res:='part1'+'part2'+'part3'+ и т.д. ; // где каждый парт по 255 символов. а в скомпиленом ехе-шнике получается строка целиком 'part1part2part3'; p.s. вобщем, извращенец я )) |
25.05.2011, 08:29 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
ресурс можно использовать и всё... я полностью согласен с GunSmoker, Вы хотите странного и сооружаете какого-то франкенштейна... |
|
25.05.2011, 18:07 | #9 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
зачем?
а за тем чтобы прямо из exe прочитать символы в строку, строку запихнуть в TStringStream, а потом stream загрузить в TBitmap в качестве картинки. все просто! =) кстати, с учетом "а в скомпиленом ехе-шнике получается строка целиком 'part1part2part3';" и в строку читать ничего не надо, она уже есть готовая )) |
25.05.2011, 18:11 | #10 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Я открою вам секрет, что ресурс в .exe тоже "просто читается". Он не шифруется, не кодируется, а хранится "как есть". Вы получаете начало ресурса и вот он весь перед вами.
Хотите строку - будет строка. Хотите bitmap - будет bitmap (и не надо вот этого "яйцо в утке, утка в зайце": "а за тем чтобы прямо из exe прочитать символы в строку, строку запихнуть в TStringStream, а потом stream загрузить в TBitmap в качестве картинки").
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
конец файла | boomeer | Общие вопросы C/C++ | 2 | 04.08.2010 15:55 |
ехе который запускает другой ехе | CrOsP | Фриланс | 12 | 24.06.2010 18:59 |
Конец Света! | Linker88 | Свободное общение | 82 | 15.06.2009 18:34 |
Как сделать ехе для программы | DiSpalL | Помощь студентам | 4 | 31.05.2009 22:21 |