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

Вниз

Замена ресурсов из 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2011.01.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
2-1288779266
Евгений007
2010-11-03 13:14
2011.01.23
не работает getmem


15-1286546611
>|
2010-10-08 18:03
2011.01.23
Как перехватить все ошибки на форме?


11-1228208201
Dy1
2008-12-02 11:56
2011.01.23
юникодовый ListView


8-1208978313
doKi
2008-04-23 23:18
2011.01.23
диффузное освещение текстуры


15-1285935354
Германн
2010-10-01 16:15
2011.01.23
Шнобель за 2010 год





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский