Использование HIDController в Delphi 2010 - PullRequest
2 голосов
/ 08 июня 2011

У меня есть приложение, которое использует HID Controller на Delphi 7, но теперь мне нужно использовать его на Delphi 2010 (проблемы с лицензией), но я обнаружил некоторые проблемы с совместимостью этого HIDController в этом Delphi 2010.Эта библиотека является частью проекта JEDI.

Я заметил некоторые вопросы от людей, использующих эту библиотеку (компонент JvHidDeviceController) с Delphi 2010 и Win7.Может быть, кто-то, кто столкнулся с той же проблемой, мог бы помочь мне.Я теперь это возможно, я просто не могу понять, как.

Ответы [ 3 ]

3 голосов
/ 11 августа 2011

Это рабочий код для D2010: Используйте пакет с этого сайта: HIDController DPK

И замените JvHidControllerClass.pas версией с этого сайта: Измененный исходный файл

Основная проблема заключается в объявлении строки и AnsiString, поэтому этот файл устраняет эту несовместимость.

P.S. Используйте архивную версию файла из сообщения.

2 голосов
/ 11 апреля 2012

Очевидно, что проблема «устройство не может быть открыто» (Наталья) также связана с символами Юникода.Новая версия HIDController, указанная в ответе 1, не решает эту проблему.

Решение: измените тип последнего параметра на TJvHIDPnPInfo.Create (unit JvHIDController.pas) в " PAnsiChar"вместо" PChar ".Не забудьте также изменить тип, в котором «вызывается» подпрограмма.

ps ссылки на «Измененный исходный файл» и «zip-версию» в ответе 1 не работают.

0 голосов
/ 21 августа 2013

В Delphi 2010 все переменные, объявленные как строка, имеют тип Unicode (широкая строка). При переносе компонентов из более ранних версий (Delphi 7) в более новую версию всегда проверяйте все переменные, объявленные как string и pchar. В более новой версии эти переменные должны быть объявлены как AnsiString и PAnsyChar, что, скорее всего, решит ваши проблемы. Конечно, вы должны убедиться, что вы вызываете какие-либо функции dll для правильного вызова _W (при вызове функции с широкими строковыми параметрами) или _A при использовании AnsiString. Однако еще одна вещь, которую стоит упомянуть, это проверить документацию на HID, чтобы увидеть, какие типы параметров принимаются и правильно их использовать в более новой версии Delphi. Я написал свой контроллер hid (аналогичный) с нуля, хотя к тому времени его еще не было, и, конечно, когда я портировал его на Delphi2010, моей главной проблемой были разные типы строк. Это было похоже, когда я написал WinUsbController для использования драйвера WinUSB. Обязательно читать руководства (MSDN), проверять заголовки (.h) и читать справку delphi (для строки), чтобы соответствовать правильным типам данных.

...