On Mon, Jan 10, 2011 at 9:19 PM, Xiaofan Chen <xiaof...@gmail.com> wrote: > On Mon, Jan 10, 2011 at 8:41 PM, Xiaofan Chen <xiaof...@gmail.com> wrote: > >> It seems my Cygwin Ctypes does not have WinDLL. >> I am not so sure if this is the problem. Last time I >> rebuilt libusb-1.0 using cdecl, now it only supports >> stdcall under Windows. >> > > It is indeed true under Cygwin. >
Once I changed libusb.h to use cdecl calling convention, then it seems to work. Right now I am having problems with Cygwin libusb-1.0 (invalid handle) so I can not test it fully but the dll loading will work. mc...@mcuee-pc-win7 /cygdrive/d/work/libusb1/win/cygwin/libusb-pbatard/examples $ python Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01) [GCC 4.3.4 20090804 (release) 1] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> from ctypes import CDLL, WinDLL Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: cannot import name WinDLL >>> c=CDLL('cygusb-1.0.dll') >>> c.libusb_init(None) libusb:debug [libusb_init] created default context libusb:debug [libusb_init] libusb:debug [init_polling] Will use CancelIoEx for I/O cancellation libusb:debug [htab_create] libusb:debug [windows_clock_gettime_threaded] using 1 021 entries hash tablehires timer available (Frequency: 2539062 Hz) libusb:debug [usbi_add_pollfd] add fd 3 events 1 0 >>> import usb.core >>> import usb.util >>> dev = usb.core.find(idVendor=0x0925, idProduct=0x7001) libusb:debug [libusb_init] reusing default context libusb:debug [libusb_get_device_list] libusb:debug [windows_get_device_list] allocating new device for session [61] libusb:debug [windows_get_device_list] allocating new device for session [1B1] libusb:debug [get_api_type] driver(s): USBHUB libusb:debug [get_api_type] matched driver name against HUB API libusb:debug [windows_get_device_list] allocating new device for session [25E] libusb:debug [get_api_type] driver(s): USBHUB libusb:debug [get_api_type] matched driver name against HUB API libusb:debug [windows_get_device_list] allocating new device for session [B5] libusb:debug [windows_get_device_list] found existing device for session [25E] libusb:debug [init_device] (bus: 2, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT _HUB#4&278C294E&0' libusb:debug [windows_get_device_list] found existing device for session [B5] libusb:debug [init_device] (bus: 1, addr: 255, depth: 0, port: 0): '\\.\USB#ROOT _HUB20#4&7056C45&0' libusb:debug [windows_get_device_list] allocating new device for session [2A1] libusb:debug [init_device] found 1 configurations (active conf: 1) libusb:debug [cache_config_descriptors] cached config descriptor 0 (bConfigurati onValue=1, 55 bytes) libusb:debug [init_device] (bus: 1, addr: 1, depth: 1, port: 5): '\\.\USB#VID_04 03&PID_CFF8#53T9XDR4' libusb:debug [windows_get_device_list] allocating new device for session [23D] libusb:debug [init_device] found 1 configurations (active conf: 1) libusb:debug [cache_config_descriptors] cached config descriptor 0 (bConfigurati onValue=1, 34 bytes) libusb:debug [init_device] (bus: 2, addr: 5, depth: 1, port: 8): '\\.\USB#VID_04 5E&PID_00E1#5&207B166D&0&8' libusb:debug [windows_get_device_list] allocating new device for session [24F] libusb:debug [init_device] found 1 configurations (active conf: 1) libusb:debug [cache_config_descriptors] cached config descriptor 0 (bConfigurati onValue=1, 34 bytes) libusb:debug [init_device] (bus: 2, addr: 2, depth: 1, port: 4): '\\.\USB#VID_04 6D&PID_C054#5&207B166D&0&4' libusb:debug [windows_get_device_list] allocating new device for session [117] libusb:debug [init_device] found 1 configurations (active conf: 1) libusb:debug [cache_config_descriptors] cached config descriptor 0 (bConfigurati onValue=1, 32 bytes) libusb:debug [init_device] (bus: 2, addr: 1, depth: 1, port: 1): '\\.\USB#VID_05 8F&PID_9360#2004888' libusb:debug [windows_get_device_list] allocating new device for session [1D0] libusb:debug [init_device] found 1 configurations (active conf: 1) libusb:debug [cache_config_descriptors] cached config descriptor 0 (bConfigurati onValue=1, 41 bytes) libusb:debug [init_device] (bus: 2, addr: 4, depth: 1, port: 7): '\\.\USB#VID_09 25&PID_7001#5&207B166D&0&7' libusb:debug [windows_get_device_list] allocating new device for session [B7] libusb:debug [init_device] found 1 configurations (active conf: 1) libusb:debug [cache_config_descriptors] cached config descriptor 0 (bConfigurati onValue=1, 32 bytes) libusb:debug [init_device] (bus: 2, addr: 3, depth: 1, port: 6): '\\.\USB#VID_FF FF&PID_0005#DEADC0DE' libusb:debug [get_api_type] driver(s): USBCCGP libusb:debug [get_api_type] matched driver name against Composite API libusb:debug [windows_get_device_list] found existing device for session [2A1] libusb:debug [get_api_type] driver(s): HIDUSB libusb:debug [get_api_type] lower filter driver(s): DC3D libusb:debug [get_api_type] matched driver name against HID API libusb:debug [windows_get_device_list] found existing device for session [23D] libusb:debug [get_api_type] driver(s): HIDUSB libusb:debug [get_api_type] matched driver name against HID API libusb:debug [windows_get_device_list] found existing device for session [24F] libusb:debug [get_api_type] driver(s): USBSTOR libusb:debug [windows_get_device_list] found existing device for session [117] libusb:debug [get_api_type] driver(s): HIDUSB libusb:debug [get_api_type] upper filter driver(s): LIBUSB0 libusb:debug [get_api_type] matched driver name against HID API libusb:debug [windows_get_device_list] found existing device for session [1D0] libusb:debug [get_api_type] driver(s): LIBUSB0 libusb:debug [windows_get_device_list] found existing device for session [B7] libusb:debug [windows_get_device_list] unlisted ancestor for '\\.\HID#COMPROHIDD EVICE&COL01#1&2D595CA7&0&0000' (non USB HID, newly connected, etc.) - ignoring libusb:debug [windows_get_device_list] unlisted ancestor for '\\.\HID#COMPROHIDD EVICE&COL02#1&2D595CA7&0&0001' (non USB HID, newly connected, etc.) - ignoring libusb:debug [windows_get_device_list] unlisted ancestor for '\\.\HID#COMPROHIDD EVICE&COL03#1&2D595CA7&0&0002' (non USB HID, newly connected, etc.) - ignoring libusb:debug [windows_get_device_list] unlisted ancestor for '\\.\HID#COMPROHIDD EVICE&COL04#1&2D595CA7&0&0003' (non USB HID, newly connected, etc.) - ignoring libusb:debug [windows_get_device_list] unlisted ancestor for '\\.\HID#COMPROHIDD EVICE&COL05#1&2D595CA7&0&0004' (non USB HID, newly connected, etc.) - ignoring libusb:debug [windows_get_device_list] setting HID interface for [23D]: libusb:debug [set_hid_interface] interface[0] = \\.\HID#VID_045E&PID_00E1&COL01# 6&E999C51&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030} libusb:debug [windows_get_device_list] setting HID interface for [23D]: libusb:debug [set_hid_interface] interface[1] = \\.\HID#VID_045E&PID_00E1&COL02# 6&E999C51&0&0001#{4D1E55B2-F16F-11CF-88CB-001111000030} libusb:debug [windows_get_device_list] setting HID interface for [24F]: libusb:debug [set_hid_interface] interface[0] = \\.\HID#VID_046D&PID_C054#6&A6CC B04&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030} libusb:debug [windows_get_device_list] setting HID interface for [1D0]: libusb:debug [set_hid_interface] interface[0] = \\.\HID#VID_0925&PID_7001#6&22E6 8DE4&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030} libusb:debug [libusb_unref_device] destroy device 1.0 libusb:debug [libusb_unref_device] destroy device 2.0 libusb:debug [libusb_get_device_descriptor] libusb:debug [libusb_get_device_descriptor] libusb:debug [libusb_get_device_descriptor] libusb:debug [libusb_get_device_descriptor] libusb:debug [libusb_get_device_descriptor] libusb:debug [libusb_get_device_descriptor] libusb:debug [libusb_get_device_descriptor] libusb:debug [libusb_unref_device] destroy device 2.255 libusb:debug [libusb_unref_device] destroy device 1.255 libusb:debug [libusb_unref_device] destroy device 1.1 libusb:debug [libusb_unref_device] destroy device 2.5 libusb:debug [libusb_unref_device] destroy device 2.2 libusb:debug [libusb_unref_device] destroy device 2.1 libusb:debug [libusb_unref_device] destroy device 2.3 >>> dev <usb.core.Device object at 0x7fe152cc> -- Xiaofan ------------------------------------------------------------------------------ Gaining the trust of online customers is vital for the success of any company that requires sensitive data to be transmitted over the Web. Learn how to best implement a security strategy that keeps consumers' information secure and instills the confidence they need to proceed with transactions. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ pyusb-users mailing list pyusb-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pyusb-users