![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Resource [D6, Win95/98, WinME, NT4, Win2k, WinXP]
-=наблюдатель=- © (2004-02-22 16:24:00)Здравствуйте. У меня вот такая проблемка выскочила. Мне нужно из одного *.EXE файла секцию RT_VERSION перенести в другой *.EXE файл с заменой. Вроде всё делаю правильно, однако сам текст секции не переносится. Как быть.
Вот код:
......
var upd,hnd:thandle;
......
function nameenum (hnd:hmodule;tp:LPCTSTR;nm:LPTSTR;lparam:longint):boolean;stdcall;
var reshnd:thandle;
mem:hglobal;
langid:word;
begin
reshnd:=findresource (hnd,nm,RT_VERSION);
mem:=loadresource (hnd,reshnd);
langid:=(SUBLANG_SYS_DEFAULT shl 10) or LANG_NEUTRAL;
updateresource (upd,RT_VERSION,nm,langid,@mem,sizeofresource (hnd,mem));
result:=true;
end;
......
hnd:=loadlibrary ('c:\temp\test2.exe');
upd:=beginupdateresource ('c:\temp\test.exe',false);
enumresourcenames (hnd,RT_VERSION,@nameenum,0);
endupdateresource (upd,false);
freelibrary (hnd);
......
Я так чувствую, что дело в последнем параметре updateresource, т.к., после выполнения этой функции управление дальше не идёт. А почему я думаю что дело именно в последнем параметре, потому что в HELP-е сказано, что sizeofresource может давать завышенный результат.
Вообщем не знаю чего делать. Помогите кто знает.
-=наблюдатель=- (2004-02-27 18:21:00) [1]Вопрос снимается. Решение найдено. Оказывается в sizeofresource вместо mem надо было вставить reshnd.
-=наблюдатель=- (2004-02-26 18:43:00) [2]К сожалению и это тоже не работает. Может кто ещё подкинет идею?
Игорь Шевченко (2004-02-24 18:31:00) [3]
> mem:=loadresource (hnd,reshnd);
> langid:=(SUBLANG_SYS_DEFAULT shl 10) or LANG_NEUTRAL;
> updateresource (upd,RT_VERSION,nm,langid,@mem,sizeofresource
> (hnd,mem));
За langid ничего не скажу, но
var
resmem : Pointer;
mem := loadresource(hnd,reshnd);
if mem = 0 then
Exit;
resmem := lockresource(mem);
updateresource (upd,RT_VERSION,nm,langid, resmem,sizeofresource
(hnd,mem))
-=наблюдатель=- (2004-02-23 13:11:00) [4]Удалено модератором
Примечание: Создание пустых сообщений
-=наблюдатель=- (2004-02-23 13:11:00) [5]Удалено модератором
Примечание: Создание пустых сообщений