Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
7-1078397406
Mamontenok
2004-03-04 13:50
2004.04.25
ОС


14-1081133494
face
2004-04-05 06:51
2004.04.25
Как заработать деньги в инете


1-1081489079
Riant
2004-04-09 09:37
2004.04.25
Excel в Delphi


1-1081229750
alik-os
2004-04-06 09:35
2004.04.25
Запись Record в файл


7-1077790648
Brut
2004-02-26 13:17
2004.04.25
Как открыть "сетевые подключения"




   Наверх