![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Массив и ресурсы(*.res) [D7, WinXP]
_Iv_ © (2007-08-31 11:24:00)Возникла проблема:
есть уже скомпилированный exe файл и есть переменная типа массив(или запись).
вопрос №1: Как можно значение этой переменной "загнать" в уже откомпилированный ехе как ресурс??
вопрос №2: Как в этом exe файле найти этот ресурс, и считать его значение в переменную типа массив(или запись)??
_Iv_ (2007-09-01 08:44:00) [1]в том то и дело что она не разовая.
Спасибо всем за ответы, вчера почитал мануалы, разобрался с BeginUpdateResource,UpdateResource,EndUpdateResource. Сделал процедурку, вроде все работает :)
evvcom (2007-08-31 14:58:00) [2]
> А вот как туды записать данные к сожалению не знаю.
Если это разовая операция, то не парься, подготовь данные и залей их туда редактором ресурсов.
Сергей М. (2007-08-31 12:50:00) [3]
> В справочнике по WinAPI я к сожалению такого не нашел
Странно. Как искал ?
p.s.
На msdn.microsoft.com всегда найдешь.
_Iv_ (2007-08-31 12:41:00) [4]В справочнике по WinAPI я к сожалению такого не нашел... фиговый справочник. Поглядел в инете тоже чет как то так... хороших примеров не нашел :( Продолжу поиски..
Сергей М. (2007-08-31 12:22:00) [5]
> _Iv_
Справку по упомянутым в [3] функциям ты уже проштудировал ?
_Iv_ (2007-08-31 12:20:00) [6]вот вот. Мы кажется друг друга поняли :)
Считать экзешник я так понимаю может примерно таким образом:
Res:=TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.Read(buff,sizeof(buff));
Res.Free;
где buff и будет мой массивчик. А вот как туды записать данные к сожалению не знаю. Если можете, подскажите, код накидайте примерный или ссылочку дайте на полезный материал
_Iv_ (2007-08-31 12:19:00) [7]вот вот. Мы кажется друг друга поняли :)
Считай экзешник я так понимаю может примерно таким образом:
Res:=TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.Read(buff,sizeof(buff));
Res.Free;
где buff и будет мой массивчик. А вот как туды записать данные к сожалению не знаю. Если можете, подскажите, код накидайте примерный или ссылочку дайте на полезный материал
Сергей М. (2007-08-31 12:14:00) [8]
> _Iv_ (31.08.07 12:04) [3]
Это как раз случай [2].
Ничто не мешает твоему "билдеру" извлечь "из себя" тот самый "небольшой екзешник" и тут же модифицировать ресурcы этого "екзешника" средствами ф-ций BeginUpdateResource + UpdateResource + EndUpdateResource
_Iv_ (2007-08-31 12:04:00) [9]
> > Как можно значение этой переменной "загнать" в уже откомпилированный
> > ехе как ресурс?Никак.
Я все таки думаю что можно. Поясню подробнее.
Пишу что-то типа билдера, который извлекает из себя небольшой екзешник и набивает его информацией.Такое раньше я уже делал, но теперь мне потребовалось сохранить как ресурс в этот екзешник опции(переменная запись или массив), чтобы он(этот exe'шник) запустился, нашел этот ресурс(по конкретному имени), считал в аналогичную переменную эти опции и в зависимости от них вел себя так или иначе.
Сергей М. (2007-08-31 11:28:00) [10]Но если поручить другомупроцессу модификацию требуемых ресурсов, то можно.
Сергей М. (2007-08-31 11:26:00) [11]
> Как можно значение этой переменной "загнать" в уже откомпилированный
> ехе как ресурс?
Никак.
> Как в этом exe файле найти этот ресурс, и считать его значение
> в переменную типа массив(или запись)??
>
см. TResourceStream