Здравствуйте!
Хочу заиспользовать это:
http://radiokot.ru/konkursCatDay2014/15/Вопросы в комментариях в коде, ответьте, пжалуста, кто в курсе работы с HID.dll
Код:
//это внутри hidlibrary.h - обертки над HID.dll
template<typename T> int HIDLibrary<T>::ReceiveData(T* data)
{
char vpath[datasize+16];//для чего выделять размер строки на 16 байт больше чем размер структуры с полезными данными?
memset(vpath,0,sizeof(vpath));
int len=datasize+1; //и тогда почему читаем всего на 1 байт больше ?
HANDLE h = CreateFile(m_ConnectedDevice.c_str(),GENERIC_READ,0,0,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
if(h != INVALID_HANDLE_VALUE)
{
int err = HidD_GetFeature(h, vpath , len);
memcpy(data,vpath+1,datasize);//зачем пропускаем первый полученный байт?
CloseHandle(h);
return err;
}
else
return 0;
}