![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обяъсните неграмотному Packed Record [D7, XP]
allucard © (2007-05-23 08:28:00)Доброго дня.
_IMAGE_IMPORT_DESCRIPTOR = packed record
case Integer of
0:(
Characteristics: DWORD);
1:(
OriginalFirstThunk:DWORD;
TimeDateStamp:DWORD;
ForwarderChain: DWORD;
Name: DWORD;
FirstThunk: DWORD);
end;
Обьясните пожалуйста что даёт case в этой конструкции?
allucard (2007-05-23 08:58:00) [1]
> Однокамушкин (23.05.07 08:54) [3]
спасиб.
Однокамушкин (2007-05-23 08:54:00) [2]
> но как указать, какая структура мне нужна(0-я или 1-я)?
А никак не надо указывать... Просто обращайтесь к полям той или иной структуры, а компилятор, он умный, разберётся... :)
allucard (2007-05-23 08:49:00) [3]в принципе идея ясна.
но как указать, какая структура мне нужна(0-я или 1-я)?
Однокамушкин (2007-05-23 08:35:00) [4]Поля, перечисленные под метками 0 и метками 1, занимают одну и ту же область памяти, т.е. к этой области памяти можно в зависимости от потребностей обращаться то как будто там лежит структура (Characteristics: DWORD), то как будто там лежит структура (OriginalFirstThunk:DWORD; TimeDateStamp:DWORD; ForwarderChain: DWORD; Name: DWORD; FirstThunk: DWORD).
В данном случае особой выгоды не просматривается... По набору полей нулевой вариант является подмножеством первого, разве что имена различаются...