2.VB中调用API函数的过程 (1)声明:下面是一个Visual Basic使用API函数WriteFile的声明:可以利用这个涵数来写数据到HID(也可以是文件和其他设备)中。Public Declare Function WriteFile Lib_“kernel32”_ (By Val hFile As Long,_ByReflpBuffer As Byte,_By Val nNumberOfBytes To Write As Long,_ByRef lpNumberOfBytesWritten As Long,_ByVal lpOvefiapped As Long)_As Long (2)识别HID过程Public Declare Function HidD_GetHidGuid Lib_“hid.dll”_(ByRefHidGuid As GUID)As Long
3.Visual Basic数据过程 (1)读数据到设备 Public Declare Function WriteFile Lib“kernel32”_(ByVal hFile As Long,_ByReflpBuffer As Byte_ByValnNumberOfBytesToWrite As Long,_ByRefnNumberOfBytcsWritten As Long,_ByVal lpOvefiapped As Long)_As Long (2)从设备读取数据Declare Function ReadFile Lib_“kernel32”_(ByValhFile As Long,_ByReflpBuffer As Byte,_ByValnNumberOfBytesToRead As Long,_ByReflpNumberOfBytesRead As Long,_lpOvefiapped As Long)_As Long 读写报文缓冲区时,个字节是ReportID,其后是报文数据。报文缓冲区默认是八个报文,并且环状排列。因为数据读写是发生在主机轮训设备的时候,并不是由设备触发产生硬件中断,所以如不能及时读写,新的数据会覆盖旧的数据,导致报文丢失。当数据读写频繁时应使用特征报文,它可以保证当报文数据没有变化时,HID不会传送新的数据。 当不再使用SetupDiGetClassDevs时,应用上述函数释放其返回的数组hDevInfo。还有需要使用函数CloseHandle,它是一个非常通用的API函数,可以用于关闭通信。
参考资料: