2010-10-27 1051 views
1
[DllImport("winusb.dll", SetLastError = true)] 
internal static extern Boolean WinUsb_ReadPipe(IntPtr InterfaceHandle, Byte PipeID, 
ref Byte Buffer, UInt32 BufferLength, ref UInt32 LengthTransferred, IntPtr Overlapped); 

我使用API​​从USB设备读取异步数据,它大部分时间都在32位操作系统中工作。但大部分时间在64位系统上失败。使用libusb从USB设备读取数据使用libusb从USB设备读取数据

任何人都可以指导我,如果这是API定义,固件或其他问题?

+1

我在Windows上使用libusb时遇到了很多挑战。我可能会建议使用[在C#/ .NET中更直接控制USB](http://www.developerfusion.com/article/84338/making-usb-c-friendly/)... – ewall 2010-10-27 15:16:47

回答

0

您显示没有代码,但导入。我的直接问题是您是否在64位系统上链接到64位版本的winusb.dll?如果您的应用程序编译为Any CPU将在64位操作系统上以64位模式运行,并且无法将其调用到32位库中。

+0

它使用AnyCPU选项进行编译,有一段时间我得到LengthTransferred> 0,但有一段时间它卡在0长度。 – 2010-10-27 14:04:06