PDA

Просмотр полной версии : Вопрос по SAFEARRAY


_nic
15.07.2009, 19:31
Часто на форумах мсдна наталкивался на примерно такое вот обращение к этому массиву

SAFEARRAY *sfarray;
.................................................
ULONG value = (&sfarray)->rgsabound[0].cElements;

Подскажите что значат эти скобки окружающие массив?Пробовал воспроизвести у себя но получаю ошибки типа C2228,C2227. Вот теперь ломаю голову как такое работает :(

Gar|k
16.07.2009, 22:28
я думаю скобки здесь указывают на то что в этот массив вложен еще один массив...

вот что выдал поиск по запросу SAFEARRAY - http://www.rsdn.ru/article/com/varsafearr.xml

я сталкивался в своей практивке со вложеными структурами... и иногда очень тяжело было намудрить чтобы получить нужные данные, но я обявлял новые указатели и проблема решалась...

вот пример моего кода со вложенными стуктурами.

typedef struct Partition_Table_Entry
{
BYTE act;
BYTE spart_gol;
BYTE spart_sek;
BYTE spart_dor;
BYTE type;
BYTE epart_gol;
BYTE epart_sek;
BYTE epart_dor;
DWORD offset_first_sektor;
DWORD kolsek;
} PTE;

typedef struct Partition_Table
{
PTE pte[4];
} PT;
//-------------------------
PT *part_table;
part_table=(PT *)&dump_disk[code_offset];
...
printf("%x",part_table->pte[i].type);
...