Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

Массив и ресурсы(*.res)   Найти похожие ветки 

 
_Iv_   (2007-08-31 11:24) [0]

Возникла проблема:
есть уже скомпилированный exe файл и есть переменная типа массив(или запись).
вопрос №1: Как можно значение этой переменной "загнать" в уже откомпилированный ехе как ресурс??
вопрос №2: Как в этом exe файле найти этот ресурс, и считать его значение в переменную типа массив(или запись)??


 
Сергей М. ©   (2007-08-31 11:26) [1]


> Как можно значение этой переменной "загнать" в уже откомпилированный
> ехе как ресурс?


Никак.


> Как в этом exe файле найти этот ресурс, и считать его значение
> в переменную типа массив(или запись)??
>


см. TResourceStream


 
Сергей М. ©   (2007-08-31 11:28) [2]

Но если поручить другому процессу модификацию требуемых ресурсов, то можно.


 
_Iv_   (2007-08-31 12:04) [3]


> > Как можно значение этой переменной "загнать" в уже откомпилированный
> > ехе как ресурс?Никак.

Я все таки думаю что можно. Поясню подробнее.
Пишу что-то типа билдера, который извлекает из себя небольшой екзешник и набивает его информацией.Такое раньше я уже делал, но теперь мне потребовалось сохранить как ресурс в этот екзешник опции(переменная запись или массив), чтобы он(этот exe"шник) запустился, нашел этот ресурс(по конкретному имени), считал в аналогичную переменную эти опции и в зависимости от них вел себя так или иначе.


 
Сергей М. ©   (2007-08-31 12:14) [4]


> _Iv_   (31.08.07 12:04) [3]


Это как раз случай [2].

Ничто не мешает твоему "билдеру" извлечь "из себя" тот самый "небольшой екзешник" и тут же модифицировать ресурcы этого "екзешника" средствами ф-ций BeginUpdateResource + UpdateResource + EndUpdateResource


 
_Iv_   (2007-08-31 12:19) [5]

вот вот. Мы кажется друг друга поняли :)
Считай экзешник я так понимаю может примерно таким образом:

Res:=TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.Read(buff,sizeof(buff));
Res.Free;

где buff и будет мой массивчик. А вот как туды записать данные к сожалению не знаю. Если можете, подскажите, код накидайте примерный или ссылочку дайте на полезный материал


 
_Iv_   (2007-08-31 12:20) [6]

вот вот. Мы кажется друг друга поняли :)
Считать экзешник я так понимаю может примерно таким образом:

Res:=TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.Read(buff,sizeof(buff));
Res.Free;

где buff и будет мой массивчик. А вот как туды записать данные к сожалению не знаю. Если можете, подскажите, код накидайте примерный или ссылочку дайте на полезный материал


 
Сергей М. ©   (2007-08-31 12:22) [7]


> _Iv_


Справку по упомянутым в [3] функциям ты уже проштудировал ?


 
_Iv_   (2007-08-31 12:41) [8]

В справочнике по WinAPI я к сожалению такого не нашел... фиговый справочник. Поглядел в инете тоже чет как то так... хороших примеров не нашел :( Продолжу поиски..


 
Сергей М. ©   (2007-08-31 12:50) [9]


> В справочнике по WinAPI я к сожалению такого не нашел


Странно. Как искал ?

p.s.
На msdn.microsoft.com всегда найдешь.


 
evvcom ©   (2007-08-31 14:58) [10]


> А вот как туды записать данные к сожалению не знаю.

Если это разовая операция, то не парься, подготовь данные и залей их туда редактором ресурсов.


 
_Iv_   (2007-09-01 08:44) [11]

в том то и дело что она не разовая.
Спасибо всем за ответы, вчера почитал мануалы, разобрался с BeginUpdateResource,UpdateResource,EndUpdateResource. Сделал процедурку, вроде все работает :)



Страницы: 1 вся ветка

Текущий архив: 2007.09.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
2-1188981955
Bast
2007-09-05 12:45
2007.09.30
idsmtp и idpop3


15-1189014249
Layner
2007-09-05 21:44
2007.09.30
Веб статистика от некоторых профи вебмастеров


2-1188546595
VRSB
2007-08-31 11:49
2007.09.30
Слушатель порта


2-1188842426
Dmitriy_
2007-09-03 22:00
2007.09.30
Как узнать имена всех объектов на форме? Плиз! очень нужно!


15-1188462314
ст.с-т Гадский
2007-08-30 12:25
2007.09.30
Человек на роликах и ПДД