![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про DIKeyboard.SetDataFormat [Delphi, Windows]
reticon © (2005-03-21 12:45:00)Ситуация такая. Есть две машины, 2000 и ХР, на обоих установлен D6.
На первой, конструкция вида hRet := DIKeyboard.SetDataFormat(c_dfDIKeyboard) не вызывает никаких проблем,
на второй же - [Error] eu_DInput.pas(121): Constant object cannot be passed as var parameter.
Заголовочники используются dx8. На обеих машинах установлен DX9.
Что етнто такое, кто объяснит?
Sphinx (2005-03-22 09:05:00) [1]я говорил вот про это:
function SetDataFormat( constlpdf: TDIDataFormat): HResult; stdcall;
проверь чтобы вместо constне было написано var.
reticon (2005-03-22 00:54:00) [2]Sphinx © (21.03.05 18:10) [3]
c_dfDIKeyboard во всех заголовочниках объявлен как const.
NailMan © (21.03.05 20:55) [4]
есесно, так работает :-)
завтра проверю, скорее всего что-то с той машиной, так как там еще эррор есть, которого нет у меня. что-то касательно HWND и top-level window :-)
Sphinx (2005-03-21 22:27:00) [3]> NailMan © (21.03.05 20:55) [4]
Прикол в том что у меня тоже такое было, но с заголовками от DX9.0 (сейчас они уже DX9.1 кажется) и решалось всё заменой в заголовочном файле varна constв описании вызова какой-то процедуры, но не DInput это был...я сперва и забыл про это...
NailMan (2005-03-21 20:55:00) [4]делай не так, а так:
var c:TDIDataFormat;
...
c:=c_dfDIKeyboard;
hRet := DIKeyboard.SetDataFormat(c);
тогда будет работать точно
ЗЫ: в свое время я с этим тоже говна наелся ;-)
---
P.L.U.R. and WBR, NailMan aka 2:5020/3337.13
Sphinx (2005-03-21 18:10:00) [5]Тогда такие варианты...подсунь заголовочный файл от DX9, всё равно там DI8 используется и изменений практически нет. Или посмотри как в заголовочном файле объявлен вызов этой функции, может там
varстоит, тогда понятно почему ошибка, но не понятно почему только на одной машине.
reticon (2005-03-21 17:50:00) [6]to Sphinx
не то...
Sphinx (2005-03-21 13:10:00) [7]Настройки у обеих Делфи проверь...
тебе же говорят что передавать константу как переменную величину нельзя, а это лишь от твоего кода зависит...ну, и не знаю насколько верно, но в настройках Делфи есть такая галочка "Разрешать изменяемые константы" вот её и посмотри...а лучше код исправь...