Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2008, 04:29   #11
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

CTL_CODE - это известный макрос для формирования кодов IOCTL. Определяется как
Код:
#define CTL_CODE( DeviceType, Function, Method, Access ) (                 \
    ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
)
В паскале будет выглядеть как
Код:
__XXXXXX___ := ((DeviceType) shl 16) OR ((Access) shl 14) OR ((Function) shl 2) OR (Method));
B_N вне форума Ответить с цитированием
Старый 03.05.2008, 06:07   #12
Jupiter
Пользователь Подтвердите свой е-майл
 
Регистрация: 26.03.2008
Сообщений: 42
По умолчанию

Сишный код:
Код:
DWORD fCapabilities;
DWORD dwReserved[4];
USHORT Reserved3:15;
Здесь 3 разных объявления переменных, как их правильно перевести
на паскаль?

Заранее спасибо.
Jupiter вне форума Ответить с цитированием
Старый 04.05.2008, 10:21   #13
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Jupiter Посмотреть сообщение
Сишный код:
Код:
DWORD fCapabilities;
DWORD dwReserved[4];
USHORT Reserved3:15;
Здесь 3 разных объявления переменных, как их правильно перевести
на паскаль?

Заранее спасибо.
fCapabilities - это dword, здесь, думаю, вопроса нет. Ну или cardinal, longword... dwReserved[4] - array [0 .. 3] of dword, а вот с Reserved3:15 сложнее - это битовое поле размером 15 бит. Возле него должно быть ещё одно, например в один бит. Кажется паскаль так не умел...
B_N вне форума Ответить с цитированием
Старый 07.05.2008, 16:39   #14
Jupiter
Пользователь Подтвердите свой е-майл
 
Регистрация: 26.03.2008
Сообщений: 42
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
...а вот с Reserved3:15 сложнее - это битовое поле размером 15 бит. Возле него должно быть ещё одно, например в один бит. Кажется паскаль так не умел...
т.е. перевести нельзя?

И что значит "Возле него должно быть ещё одно, например в один бит."?
На паскале я не знаю типов размером в один бит, есть- ли такие?
Jupiter вне форума Ответить с цитированием
Старый 19.06.2010, 11:31   #15
buenosaire
 
Регистрация: 08.05.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Jupiter, если Вас не пугает C, посмотрите вот здесь... Ну а как на дельфи с этим вопросом... не знаю. В принципе там просто несколько вызовов DeviceIoControl и определение нескольких типов и констант...
А как сделать так, чтобы программа автоматически определяла CD-ROM и читала его серийник???
buenosaire вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нет диска в устройстве }{@TT@BЬ)Ч Операционные системы общие вопросы 7 20.01.2009 20:18
Скан диска ZYRGiX Win Api 7 30.12.2007 14:05
Дефрагментация диска Viteef Софт 8 06.12.2007 23:33
Имя и номер KAMASUTR Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 10.08.2007 22:26