c++ – Error getting number of devices using Libusb-win32-220.127.116.11
usb_find_devices() documentation within the libusb 0.1 API says:
Returns the variety of modifications because the earlier name to this operate (whole of recent system and gadgets eliminated).
So, it doesn’t return the variety of obtainable gadgets, like you expect. Should you want that worth, enumerate the bus checklist counting the gadgets your self.
In any other case, simply ignore the depend and transfer on to your bus printing loop, it should run throughout any linked gadgets.
That being mentioned, there’s a newer libusb 1.Zero API, however its documentation doesn’t point out
usb_find_devices() in any respect.
usb_find_devices() seems to have been changed with a brand new
Returns an inventory of USB gadgets at the moment connected to the system.
That is your entry level into discovering a USB system to function.
You actually ought to be utilizing the newer 1.Zero API, per the libusb web site:
There are a number of libusb-0.1 API implementations:
- libusb-0.1 is the very first libusb implementation.
- libusb-compat-0.1 is a compatibility library which gives the libusb-0.1 API through the use of the libusb-1.Zero API.
- libusb-win32 is a Home windows-only implementation of the libusb-0.1 API. The libusb-win32 venture has additionally created the open supply libusb0.sys Home windows kernel driver, which exposes a userspace API that permits USB gadgets to be accessed exterior of the Home windows kernel.
As a result of the 0.1 and 1.Zero APIs use totally different prefixes they’re appropriate with one another. It’s common that each are put in in parallel on a system. We strongly advocate utilizing libusb-1.Zero along with libusb-compat-0.1 as a substitute of the traditional libusb-0.1 code, in order that applications which use each the 0.1 API and the 1.Zero API in several components of this system, or in several libraries utilized by this system, will all use libusb-1.Zero for the precise system entry. That is vital to keep away from potential conflicts between libusb-1.Zero and libusb-0.1 getting used in the identical course of.
… libusb-1.Zero is really helpful for all new growth. Builders are inspired to port present purposes which use libusb-0.1 to make use of the brand new API.
libusb-0.1 (legacy API)
- Observe that libusb-win32 is a separate venture which nonetheless sees lively growth. The subsequent era libusb-win32 kernel driver (libusbk.sys) is predicated on KMDF. The libusbk library will help the present libusb-win32 API, libusb-1.Zero API and WinUSB-like API. libusb-win32 customers who’re advantageous with the libusb-win32 API are really helpful to maintain utilizing it since will probably be supported by the libusb-win32 venture. libusb-win32 customers who’re taken with libusb-1.Zero will even be supported as soon as the libusbk backend is built-in. Future enhancement of the libusb-1.Zero API (say libusb-1.1) could also be required to be extra appropriate for Home windows customers.