Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Обяъсните неграмотному Packed Record   Найти похожие ветки 

 
allucard   (2007-05-23 08:28) [0]

Доброго дня.

_IMAGE_IMPORT_DESCRIPTOR = packed record
case Integer of
 0:(
  Characteristics: DWORD);
 1:(
  OriginalFirstThunk:DWORD;
  TimeDateStamp:DWORD;
  ForwarderChain: DWORD;
  Name: DWORD;
  FirstThunk: DWORD);
 end;


Обьясните пожалуйста что даёт case в этой конструкции?


 
Однокамушкин   (2007-05-23 08:35) [1]

Поля, перечисленные под метками 0 и метками 1, занимают одну и ту же область памяти, т.е. к этой области памяти можно в зависимости от потребностей обращаться то как будто там лежит структура (Characteristics: DWORD), то как будто там лежит структура (OriginalFirstThunk:DWORD; TimeDateStamp:DWORD; ForwarderChain: DWORD; Name: DWORD; FirstThunk: DWORD).

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


 
allucard   (2007-05-23 08:49) [2]

в принципе идея ясна.

но как указать, какая структура мне нужна(0-я или 1-я)?


 
Однокамушкин   (2007-05-23 08:54) [3]


> но как указать, какая структура мне нужна(0-я или 1-я)?


А никак не надо указывать... Просто обращайтесь к полям той или иной структуры, а компилятор, он умный, разберётся... :)


 
allucard   (2007-05-23 08:58) [4]


> Однокамушкин   (23.05.07 08:54) [3]

спасиб.



Страницы: 1 вся ветка

Текущий архив: 2007.06.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
9-1153263872
Хиппи
2006-07-19 03:04
2007.06.10
Можно ли к GLScene прикрутить плагины от Милкшейпа?


1-1176820057
DelphiLexx
2007-04-17 18:27
2007.06.10
DrawText


10-1126739002
TStas
2005-09-15 03:03
2007.06.10
Как с экселе обвести рамочками диапазон?


15-1179006731
Бывший_ТСтас
2007-05-13 01:52
2007.06.10
Как восстановить пароль к форуму?


11-1160674421
ANTPro
2006-10-12 21:33
2007.06.10
Минимальное приложение/dll на KOL