Вниз
Скачать: 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.021 c
3-1080635505
Igoryok
2004-03-30 12:31
2004.04.25
MySQL база или как получить доступ


1-1081164502
d_oleg
2004-04-05 15:28
2004.04.25
Странное зависание при ShowModal из DLL


14-1080645968
DillerXX
2004-03-30 15:26
2004.04.25
Ззадача :)


1-1081315885
Yuri_Smith
2004-04-07 09:31
2004.04.25
нажатие мыши


9-1067548576
MrAngel
2003-10-31 00:16
2004.04.25
Уменьшение числа полигонов на модели




   Наверх