У меня есть приложение на C, которое хорошо работает в Ubuntu, но мне нужно перенести его на Visual Studio, и там начинаются проблемы.Я использую Visual Studio 2017, и моя проблема с функциями обратного вызова, которые я использую.В этом коде мне нужно зарегистрировать две функции обратного вызова (почти один и тот же код, просто одна предназначена для отправки данных, другая - для их получения).
libusb_fill_bulk_transfer(recv_transfer_desc, //transfer descriptor struct
usb_dev_handle, //usb device handle
EP1_IN, //unsigned char
in_buffer, //unsigned char*
len, //tranfer length, int
recv_transfer_finished_cb, //callback func
&my_recv_cb_data, //void*, callback user data
timeout); //unsigned int
Это дает следующую ошибку: C2440 'function': cannot convert from 'void (__cdecl *)(libusb_transfer *)' to 'libusb_transfer_cb_fn'
Я никогда не использую VS, поэтому я действительно не знаю, как решить эту проблему.Для меня это выглядит так, как будто что-то нужно преобразовать во что-то, но просто не могу понять.
Это сигнатура функции обратного вызова, которую я пытаюсь обработать: static void recv_transfer_finished_cb(struct libusb_transfer *);