我使用的libusb到与USB设备进行交互。我创建了一个类,一个成员函数将接收来自设备的输入并处理它。我正在使用异步api。现在libusb_fill_bulk_transfer()函数调用抛出一个编译错误:如何通过回调函数与libusb批量传输函数在C++类
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的成员函数中调用。
好吧,所以它需要是__stdcall。 – Pete