Как из IDC перечислить члены union из IDC(или при помощи SDK)?

Тема в разделе "WASM.RESEARCH", создана пользователем nobodyzzz, 8 сен 2008.

  1. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    собственно сабж =)
    Данный код работает(т.е. выводит имена всех членов) только для структуры.
    Код (Text):
    1. auto i, id, size;
    2. id = GetStrucId(GetFirstStrucIdx());
    3. size = GetStrucSize(id);
    4. i = 0;
    5. while(i < size)
    6. {
    7.   Message("%s\n", GetMemberName(id, i));
    8.   i = i + GetMemberSize(id, i);
    9. }
    копания в хелпе к иде и в гугле не дали ничего конкретного. Есть подозрение что из IDC это невозможно...
     
  2. Sergey_R

    Sergey_R Member

    Публикаций:
    0
    Регистрация:
    9 янв 2005
    Сообщения:
    138
    Члены union перечисляются по их номерам:

    auto i, id, N;
    N = GetMemberQty(id);
    // Message("%d\n", N);
    for (i = 0; i < N; i++)
    {
    Message("%s\n", GetMemberName(id, i));
    }

    Выяснить union это или нет, можно функцией
    long IsUnion(long id);
     
  3. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Sergey_R, спасибо.