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

Вниз

Замена ресурсов из dll файлов?   Найти похожие ветки 

 
Nikfel   (2009-05-30 23:56) [0]

Под скажите, пожалуйста. Как из dll файла взять ресурс и закинуть его в другую dll?
Я пробовал так:

procedure resupdate(strFile1,strFile2,lpType,Nameresourse:Pchar);
var hHandle,hResLoad,hResData,hUHandle:cardinal;
data:pointer;
begin
hHandle:=LoadLibrary(strFile1);
hResLoad:=FindResource(hHandle, Nameresourse, lpType);
hResData:=LoadResource(hHandle, hResLoad);
data:=LockResource(hResData);
hUHandle:=BeginUpdateResource(strFile2, false);
UpdateResource (hUHandle, lpType, Nameresourse, LANG_Russian, Data,SizeofResource(hHandle, hResLoad));
EndUpdateResource(hUHandle, false);
FreeLibrary (hHandle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
resupdate("ResUpdate.dll","Res.dll",RT_BITMAP,"BMP");
resupdate("ResUpdate.dll","Res.dll",RT_DIALOG,"Nokg");
end;


Но вот иконку так не перекинешь почему-то. Например:
resupdate("ResUpdate.dll","Res.dll",RT_GROUP_ICON,"mainicon"); вот это уже не работает. Как сделать все правильно? Заранее спасибо.


 
Nikfel   (2009-05-31 01:07) [1]

Я нашел только вот такой вариант:

http://forum.vingrad.ru/forum/topic-259451.html

Но вот по другому можно ли?


 
Nikfel   (2009-05-31 01:13) [2]

Там можно разобраться как извлечь любой файл из файла ресурсов, а потом просто записать в ресурс из файла. Но так и не понятно как получить иконку сразу из ресурса и записать в другой ресурс.


 
Германн ©   (2009-05-31 01:30) [3]


> Nikfel   (31.05.09 01:13) [2]
>
> Там можно разобраться как извлечь любой файл из файла ресурсов,
>  а потом просто записать в ресурс из файла. Но так и не
> понятно как получить иконку сразу из ресурса и записать
> в другой ресурс.
>

А вот тут уже стало интересно.
Зачем нужно "получить иконку сразу из ресурса и записать в другой ресурс."


 
Nikfel   (2009-05-31 11:00) [4]

Так что лучше записывать иконку из файла в ресурс сразу?


 
Nikfel   (2009-05-31 18:42) [5]

У меня еще один вопрос остался. Почему-то после записи в dll файл некоторые данные из файла ресурса теряются. Например если в код добавить такую строку:
resupdate("ResUpdate.dll","Res.dll","avi","avi");
то тогда будет теряться ресурс RT_DIALOG. Что надо заблокировать чтобы не было потери ресурса RT_DIALOG? Как его полностью заблокировать чтобы не потерять данные?


 
Nikfel   (2009-05-31 21:03) [6]

Разобрался вроде. Чтобы такой проблемы не было надо сразу записывать в файл ресурсов все, т.е. использовать несколько UpdateResource и одну EndUpdateResource.



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

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

Наверх




Память: 0.48 MB
Время: 0.008 c
11-1218819651
KOLBOSS
2008-08-15 21:00
2011.01.23
Cookies Synapse


15-1285722547
Дмитрий С
2010-09-29 05:09
2011.01.23
Схема подсветки дверей в а/м.


2-1288200299
Чайник
2010-10-27 21:24
2011.01.23
Программное перемещение ScrollBar в TMemo


2-1288624179
cyber-pilot
2010-11-01 18:09
2011.01.23
Как перехватить вставку из буфера в комбобокс?


15-1286604563
TUser
2010-10-09 10:09
2011.01.23
Антигедонистическое