![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите перевести из C в Delphi
Виктор007 © (2007-09-22 16:58:00)Помогите перевести структуры чтобы их размер и смещения полей были такими же. Это их примера из DDK:
typedef enum {
IRP_BASED ,
EVENT_BASED
} NOTIFY_TYPE;
typedef struct _REGISTER_EVENT
{
NOTIFY_TYPE Type;
HANDLE hEvent;
LARGE_INTEGER DueTime; // requested DueTime in 100-nanosecond units
} REGISTER_EVENT , *PREGISTER_EVENT ;
DVM (2007-09-22 17:45:00) [1]
> Вставил в программу на С
> printf("EVENT_BASED = %d \n", type);
>
> и получил что EVENT_BASED это 1
тогда вроде все правильно
DVM (2007-09-22 17:44:00) [2]
> Нет, нигде кроме того места с enum они не описаны
вот еще вариант, но это то же, что и [4]
_type = UINT(EVENT_BASED);
Виктор007 (2007-09-22 17:41:00) [3]Вставил в программу на С
printf("EVENT_BASED = %d \n", type);
и получил что EVENT_BASED это 1
Виктор007 (2007-09-22 17:37:00) [4]Нет, нигде кроме того места с enum они не описаны
DVM (2007-09-22 17:32:00) [5]
> Виктор007 (22.09.07 17:19) [2]
а EVENT_BASED и IRP_BASED это что? константы? они где то описаны?
А то сдается мне что я неправильно написал
DVM (2007-09-22 17:28:00) [6]
> Переводилкой сделано?
Да, чтобы не набивать вручную.
Частично переведено с2pas.exe, но enum она не поняла почему то.
DVM (2007-09-22 17:25:00) [7]
> UINT type = EVENT_BASED;
Если в лоб, то само собой будет несоответствие типов. Может так?
_type: UINT = ORD(EVENT_BASED);
Leonid Troyanovsky (2007-09-22 17:21:00) [8]
> DVM © (22.09.07 17:06) [1]
Переводилкой сделано?
А какой, если не секрет?
--
Regards, LVT.
Виктор007 (2007-09-22 17:19:00) [9]Спасибо!
У меня там дальше опять проблемка:
UINT type = EVENT_BASED;
Как вот это правильно написать?
DVM (2007-09-22 17:06:00) [10]
NOTIFY_TYPE = (IRP_BASED, EVENT_BASED);
_REGISTER_EVENT = record
_Type: NOTIFY_TYPE;
hEvent: THandle;
DueTime: LARGE_INTEGER; (* requested DueTime in 100-nanosecond units*)
end;
REGISTER_EVENT = _REGISTER_EVENT;
PREGISTER_EVENT = ^_REGISTER_EVENT;