我正在使用 libusb 与 USB 设备进行交互。我创建了一个类,一个成员函数将接收来自设备的输入并进行处理。我正在使用异步 api。现在libusb_fill_bulk_transfer()函数调用会引发编译错误:
void MyDeviceClass::on_connectButton_clicked()
{
int r; //for return values
ssize_t cnt; //holding number of devices in list
r = libusb_init(&ctx); //initialize the library for the session we just declared
if(r < 0) {
qDebug()<<"Init Error "<<r<<endl; //there was an error
return;
}
...
...
...
libusb_fill_bulk_transfer( transfer_in, dev_handle, USB_ENDPOINT_IN,
inBuffer, LEN_IN_BUFFER,readDataFromBuffer,NULL,0);
libusb_submit_transfer(transfer_in);
QtConcurrent::run (this,&MyDeviceClass::eventThread);
}
编译器建议使用 &MyDeviceClass::readDataFromBuffer 作为函数指针,但这仍然会引发错误。我尝试使用静态成员,甚至静态非成员函数,但都是徒劳的。请帮助我将回调传递给此函数。我正在使用 Qt,可能不喜欢使用 boost 库。 请注意 libusb_fill_bulk_transfer(...) 在 MyDeviceClass 的成员函数中调用。