![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена ресурсов из dll файлов? [D7]
Nikfel © (2009-05-30 23:56:00)Под скажите, пожалуйста. Как из 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 21:03:00) [1]Разобрался вроде. Чтобы такой проблемы не было надо сразу записывать в файл ресурсов все, т.е. использовать несколько UpdateResource и одну EndUpdateResource.
Nikfel (2009-05-31 18:42:00) [2]У меня еще один вопрос остался. Почему-то после записи в dll файл некоторые данные из файла ресурса теряются. Например если в код добавить такую строку:
resupdate('ResUpdate.dll','Res.dll','avi','avi');
то тогда будет теряться ресурс RT_DIALOG. Что надо заблокировать чтобы не было потери ресурса RT_DIALOG? Как его полностью заблокировать чтобы не потерять данные?
Nikfel (2009-05-31 11:00:00) [3]Так что лучше записывать иконку из файла в ресурс сразу?
Германн (2009-05-31 01:30:00) [4]
> Nikfel (31.05.09 01:13) [2]
>
> Там можно разобраться как извлечь любой файл из файла ресурсов,
> а потом просто записать в ресурс из файла. Но так и не
> понятно как получить иконку сразу из ресурса и записать
> в другой ресурс.
>
А вот тут уже стало интересно.
Зачем нужно "получить иконку сразу из ресурса и записать в другой ресурс."
Nikfel (2009-05-31 01:13:00) [5]Там можно разобраться как извлечь любой файл из файла ресурсов, а потом просто записать в ресурс из файла. Но так и не понятно как получить иконку сразу из ресурса и записать в другой ресурс.
Nikfel (2009-05-31 01:07:00) [6]Я нашел только вот такой вариант:
http://forum.vingrad.ru/forum/topic-259451.html
Но вот по другому можно ли?