Подскажите плиз как заменить строку в таблице ресурсов String Table? Делаю так: Код (Text): .const ResName equ 1 Line db 'String',0 Buff db 'NewString',0 .data? hRes dd ? .code start: ;--------------------------------------------------------------------- ----------------------------- invoke BeginUpdateResource,addr Line,FALSE mov hRes,eax invoke UpdateResource,hRes,RT_STRING,ResName,0,addr Buff,sizeof Buff invoke EndUpdateResource,hRes,FALSE ;--------------------------------------------------------------------- ----------------------------- invoke ExitProcess,eax end start Вот новый ресурс создается а в существующем поле ресурса String Table не меняется что нада. (если смотреть в редакторе ресурсов 'eXeScope') +Bitmap +Dialog +String Table- ...(1) ........Тут появляются типа такие данные 1,???????????$00$00$00$00$ (даже не строка NewString) ........1,String1 ........2,String2 ........3,String3 ........... ........5,Нужно записать в это поле 'NewString' вместо 'String5' ...(2) ........27, String 27 +Icon +Version Вот такая проблема.
TViT Afaik UpdateResource позволяет менять ресурс целиком. В случае c STRINGTABLE надо читать всю таблицу, искать и менять нужную строку, и обновлять всю таблицу.
q_q Ну а подробнее, допустим я найду ресурс (FindResource), допустим загружу (LoadResource) или найду строку (LoadString), а апдейтить то как UpdateResource??? Так неполучилось, я ж написал что ета функция записывает в StringTable (1,???????????$00$00$00$00$). Или надо какие то другие АПИ юзать???
TViT Качай stablupd.exe (zip self-extract 52'728 байт) со страницы Stablupd.exe Manipulate String Resources in an Executable и изучай strblock.c.