稍微阅读后,我担心我的32位Delphi应用程序将无法在Windows 7和其他64位Windows系统上使用libusb 64位驱动程序,并且无法与我的定制硬件进行通信这些系统上的设备。 这是真的? 如果是,是否有一些解决方法? 我在这张照片中错过了什么吗?
在带有WinUSB后端的libusb 1.0(Windows附带的Microsoft驱动程序)上,我们没有任何问题从x86应用程序(由C#应用程序使用的托管c ++库)与它进行通信。 在x86和x64平台上的行为是相同的。
我不知道有关libusb 0.1(旧的能够使用libusb-win32内核驱动程序的),但作为您的1.0版本的链接,你似乎并没有使用它。
在某些时候,libusb 1.0将支持libusb-win32内核驱动程序,但是在特定情况下,除非有必要(WinUSB有一些限制,但我从来没有碰到过它们)
究竟是什么让你觉得它不会? 如果你有64位的驱动程序,它可以在64位系统上使用(因为驱动程序工作正常,签名正确)。 32位和64位应用程序都可以通过各种通信机制(如Ioctl或MMF文件)来控制驱动程序。 问题是如果代码的所有部分都写得正确,但这个问题适用于任何库和任何平台
我使用libusb-win32在我的Win7 64位笔记本上使用了delphi 32位应用程序。 到目前为止没有问题。 驱动程序也被签名(只有我的.inf文件没有)。
请注意,libusb-win32使用“旧”libusb API。