Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Вниз

Массив и ресурсы(*.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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.041 c
2-1188903449
em240
2007-09-04 14:57
2007.09.30
MSSQL2000+запуск функции из DLL


15-1188799204
yura123
2007-09-03 10:00
2007.09.30
коннекшн между домом


1-1184659706
Chaser
2007-07-17 12:08
2007.09.30
Загрузка в "WordApplication1" файл из TMemoryStream


2-1188756366
Bast
2007-09-02 22:06
2007.09.30
Проблема


2-1188929716
Slip
2007-09-04 22:15
2007.09.30
Сбой при запуске Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский