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

Вниз

Кто поможет? DirectInput организация управления.   Найти похожие ветки 

 
Познователь   (2003-04-22 18:54) [0]

Часто используют функции библиотеки DirectInput для организации
управления. Однако у меня проблема. Есть функция для подготовки
работы с устройством.
...
hRet := DirectInput8Create(hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, FDI, nil);
if Failed(hRet) then begin
Result := hRet;
Exit
end;

hRet := FDI.CreateDevice (GUID_SysKeyboard, DDIKeyboard, nil);
if Failed(hRet) then begin
Result := hRet;
Exit
end;

---------
Компилирую. Пишет Incompatible types: "TDIDataFormat" and "PDIDataFormat"

hRet := DDIKeyboard.SetDataFormat(c_dfDIKeyboard);
if Failed(hRet) then begin
Result := hRet;
Exit
end;
---------
hRet := DDIKeyboard.SetCooperativeLevel(Handle, DISCL_FOREGROUND or DISCL_EXCLUSIVE);
if Failed(hRet) then begin
Result := hRet;
Exit
end;

Result := DDIKeyboard.Acquire;
end;
...
Перед захватом ус-ва необходимо вызвать метод SetDataFormat объекта, связанного в ус-вом ввода. Описывается формат, в котором
вводимые данные возвращаются ус-вом. Задаем стандартный формат.

В чем же ошибка.


 
cyborg ©   (2003-04-22 20:33) [1]

DDIKeyboard.SetDataFormat(@c_dfDIKeyboard);


 
Познователь   (2003-04-23 13:19) [2]

cyborg
Теперь все ОК. В книге однако этого небыло, т.е. "@". Знать - хорошо, понимать вдвойне хорошо. Интересно это ошибка автора или еще почемуто? Хотя, наверно, это не ошибка.


 
k-man ©   (2003-04-23 15:55) [3]

К вопросу понимания:
Ну вообще я ничего не понимаю в графике, но судя по сообщению компилятора которое ты привел

> Компилирую. Пишет Incompatible types: "TDIDataFormat" and
> "PDIDataFormat"

можно сделать вывод о том что требуется указатель в качестве аргумента. Так как ID типов указателей обычно начинаются с префикса "P" - pointer, в то время как идентификаторы остальных типов данных обычно начинаются с префикса "Т"-Type.
А префикс "@" насколько я знаю в данном случае обозначает указатель на аргумент.
Хотя может я ошибаюсь...


 
cyborg ©   (2003-04-23 17:55) [4]

Проще говоря @ является адресом :)


 
k-man ©   (2003-04-23 22:39) [5]

Ну я об этом и хотел сказать только по возможности пояснив.-)


 
Shurik   (2003-04-27 03:55) [6]

@ - не адрес, а оператор взятия адреса


 
k-man ©   (2003-04-27 15:17) [7]


> Shurik

О таком феномене не слышал. Если быть точным
@ - операция адресации.


 
Shurik   (2003-04-28 04:09) [8]

Э-э-э... Я это и имел в виду :)


 
k-man ©   (2003-04-28 17:12) [9]

В общем разобрались с терминологией-)



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

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

Наверх




Память: 0.48 MB
Время: 0.017 c
7-8703
bloodman
2003-08-25 15:31
2003.11.03
Выключение монитора


3-8319
mari
2003-10-14 16:28
2003.11.03
работа со строками


9-8249
MeF88
2003-04-03 11:19
2003.11.03
GLScene+OpenGL


1-8424
Алексей Петухов
2003-10-21 13:40
2003.11.03
DOS Кодировка


3-8335
Geugenk
2003-10-11 16:19
2003.11.03
Table.eof