Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: 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 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
8-1074944902
_MAD_
2004-01-24 14:48
2004.04.25
работа с bmp


1-1081159093
Checist [root]
2004-04-05 13:58
2004.04.25
Вытащить сылку из .lnk файла


14-1080701475
Думкин
2004-03-31 06:51
2004.04.25
С днем рождения! 31 марта.


14-1080915958
Delphi5.01
2004-04-02 18:25
2004.04.25
Рецепт плавленого ...


1-1081151863
infom
2004-04-05 11:57
2004.04.25
Вывод листинга программы в Word