Я же скрин на 8-мой странице темы выкладывал, где видно что DLLка работает как надо.так прога hidtool.exe работает отлично. а вот с длл еще никак.
В архиве прога для компа, работающая с этим проектом.
Я же скрин на 8-мой странице темы выкладывал, где видно что DLLка работает как надо.так прога hidtool.exe работает отлично. а вот с длл еще никак.
Код: Выделить всё
Public Declare Function HID_OpenDevice Lib "HID_Lib_PB.dll" (ByVal PID As Integer, ByVal VID As Integer, ByVal VersionNumber As Integer, ByVal Index As Integer) As Long
Public Declare Function HID_GetFeature Lib "HID_Lib_PB.dll" (ByVal Handle As Long, ByRef buffer() As Byte, ByVal LenBuffer As Long) As Long
Public Declare Function HID_SetFeature Lib "HID_Lib_PB.dll" (ByVal Handle As Long, ByRef buffer() As Byte, ByVal LenBuffer As Long) As Long
Public Declare Function HID_CloseDevice Lib "HID_Lib_PB.dll" (ByVal Handle As Long) As IntegerКод: Выделить всё
Dim vid As Integer = 5824
Dim pid As Integer = 1503
Dim ver As Integer = -1
Dim ind As Integer = 0
Dim Handle, res As Long
Handle = HID_OpenDevice(pid, vid, ver, ind)
Dim Buffer(128) As Byte 'от нуля = 129
res = HID_GetFeature(Handle, Buffer, Buffer.Length) ' Buffer.Length=129res =468339417392611328
длина Buffer становится равной 1
От инструмента тоже многое зависит.главное не инструмент
Да.demson писал(а):на всякий случай. HID_GetFeature вернет Long ?
Во вложении рабочий проект на VB.NETdemson писал(а):
только меня кто нибудь пиннните в правильное направление.
никак не получается принять с устройства данные.
Причина проста - в папке с исполняемым файлом не было HID_Lib_PB.dll.Не удается загрузить DLL "HID_Lib_PB.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)
В место Short можно использовать CharRadan писал(а):Пробую переделать пример термометра Баскома - http://purebasic.mybb.ru/viewtopic.php?id=46.
Dim vid As Short = 43690 ' &HAAAA
Dim pid As Short = 61188 ' &HEF04
При указанных vid и pid и типе Short будет ошибка, т.к. он не больше 32000 (2^16).
Если в декларации функций библиотеки ставлю Integer для vid и pid , он возвращает массив из нулей.
В чём может быть проблема?
Тот термометр использует конечную точку INPUT, поэтому следует использовать функцию HID_ReadDevice в место HID_GetFeature.Char - символьный тип. Для хранения переменной отводиться 2 байта. В качестве значения переменной обычно применяются символы, так как используются теперь 2 байта. Разработчики могут применять символы Unicode.
Странно, у меня никакой ошибки нет.Radan писал(а):Перекомпилил и залил прошивку с такими же вид и пид как в WindowsApplication_2. Попробовал на другом приложении, термометр работает. Вышеуказаннsй пример вылетает с ошибкой: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена." Что-то не так...