UpdateResources-RT_STRING

Тема в разделе "WASM.BEGINNERS", создана пользователем TViT, 23 окт 2005.

  1. TViT

    TViT New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2004
    Сообщения:
    25
    Подскажите плиз как заменить строку в таблице ресурсов String Table?

    Делаю так:
    Код (Text):
    1.  
    2. .const
    3. ResName             equ 1
    4. Line                db 'String',0
    5. Buff                db 'NewString',0
    6. .data?
    7. hRes                dd ?
    8.  
    9. .code
    10. start:
    11. ;---------------------------------------------------------------------  -----------------------------
    12.         invoke BeginUpdateResource,addr Line,FALSE
    13.             mov hRes,eax
    14.         invoke UpdateResource,hRes,RT_STRING,ResName,0,addr Buff,sizeof Buff
    15.         invoke EndUpdateResource,hRes,FALSE
    16. ;---------------------------------------------------------------------  -----------------------------
    17.         invoke ExitProcess,eax
    18. end start
    19.  






    Вот новый ресурс создается а в существующем поле ресурса 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



    Вот такая проблема.
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    TViT

    Afaik UpdateResource позволяет менять ресурс целиком. В случае c STRINGTABLE надо читать всю таблицу, искать и менять нужную строку, и обновлять всю таблицу.
     
  3. TViT

    TViT New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2004
    Сообщения:
    25
    q_q

    Ну а подробнее, допустим я найду ресурс (FindResource), допустим загружу (LoadResource) или найду строку (LoadString), а апдейтить то как UpdateResource??? Так неполучилось, я ж написал что ета функция записывает в StringTable (1,???????????$00$00$00$00$). Или надо какие то другие АПИ юзать???
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
  5. TViT

    TViT New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2004
    Сообщения:
    25
    q_q



    Санкс более менее сделал! :)