Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизResource Найти похожие ветки
← →
-=наблюдатель=- © (2004-02-22 16:24) [0]Здравствуйте. У меня вот такая проблемка выскочила. Мне нужно из одного *.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-23 13:11) [1]Удалено модератором
Примечание: Создание пустых сообщений
← →
-=наблюдатель=- © (2004-02-23 13:11) [2]Удалено модератором
Примечание: Создание пустых сообщений
← →
Игорь Шевченко © (2004-02-24 18:31) [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-26 18:43) [4]К сожалению и это тоже не работает. Может кто ещё подкинет идею?
← →
-=наблюдатель=- © (2004-02-27 18:21) [5]Вопрос снимается. Решение найдено. Оказывается в sizeofresource вместо mem надо было вставить reshnd.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c