![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите перевести кусок С-шного кода.
Shiza © (2004-03-11 09:58:00)Пожалуйста, если кто-нибудь знает как перевести на дельфи, ниже приведённый код, подскажите. А точнее интересует как перевести то, что стоит после слова union.
typedef struct _IMAGE_IMPORT_DESCRIPTOR {
union {DWORD Characteristics;
DWORD OriginalFirstThunk;};
DWORD TimeDateStamp;
DWORD ForwarderChain;
DWORD Name;
DWORD FirstThunk;
} IMAGE_IMPORT_DESCRIPTOR;
typedef IMAGE_IMPORT_DESCRIPTOR UNALIGNED *PIMAGE_IMPORT_DESCRIPTOR;
Игорь Шевченко (2004-03-11 10:05:00) [21]А ты без union переводи :)
Я уже много лет пользуюсь таким описанием, на грабли не наступал
PIMAGE_IMPORT_DESCRIPTOR = ^IMAGE_IMPORT_DESCRIPTOR;
IMAGE_IMPORT_DESCRIPTOR = packed record
Characteristics : Cardinal; // 0 for terminating null import descriptor
// RVA to original unbound IAT (PIMAGE_THUNK_DATA)
TimeDateStamp : Cardinal; // 0 if not bound,
// -1 if bound, and real date\time stamp
// in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND)
// O.W. date/time stamp of DLL bound to (Old BIND)
ForwarderChain : Cardinal; // -1 if no forwarders
Name : Cardinal;
FirstThunk : Cardinal; // RVA to IAT (if bound this IAT has actual addresses)
end;
Asdor (2004-03-11 10:03:00) [22]Имхо Union здесь - аналог
Сase boolean of
true : Chadacteristic:DWORD;
false: OriginalFirstChunk:DWORD;
end;