【发布时间】:2011-01-26 09:43:51
【问题描述】:
看了一点,我担心我的 32 位 Delphi 应用程序将无法在 Windows 7 和其他 64 位 Windows 系统上使用libusb 64 位驱动程序,并且无法使用在这些系统上与我的自定义硬件设备交谈。这是真的?如果是,是否有一些解决方法?我在这张照片中遗漏了什么吗?
【问题讨论】:
标签: windows delphi 64-bit driver libusb
看了一点,我担心我的 32 位 Delphi 应用程序将无法在 Windows 7 和其他 64 位 Windows 系统上使用libusb 64 位驱动程序,并且无法使用在这些系统上与我的自定义硬件设备交谈。这是真的?如果是,是否有一些解决方法?我在这张照片中遗漏了什么吗?
【问题讨论】:
标签: windows delphi 64-bit driver libusb
究竟是什么让你认为它不会?如果您有 64 位驱动程序,则它可在 64 位系统上使用(假设驱动程序工作正常且已正确签名)。 32 位和 64 位应用程序都可以通过各种通信机制(例如 Ioctl 或 MMF 文件)控制驱动程序。问题是代码的所有部分是否正确编写,但这个问题适用于任何库和任何平台
【讨论】:
在带有 WinUSB 后端(Windows 中包含 Microsoft 驱动程序)的 libusb 1.0 上,我们从 x86 应用程序(C# 应用程序使用的托管 c++ 库)与其通信没有问题。在 x86 和 x64 平台上的行为是相同的。
我不知道 libusb 0.1(能够使用 libusb-win32 内核驱动程序的旧版本),但作为您指向 1.0 版本的链接,您似乎没有使用它。 em>
在某些时候 libusb 1.0 将支持 libusb-win32 内核驱动程序,但除非在特定情况下没有必要(WinUSB 有一些限制,但我从未遇到过)
【讨论】:
我在装有 delphi 32 位应用程序的 Win7 64 位笔记本电脑上成功使用了libusb-win32。到目前为止没有问题。驱动程序也已签名(只有我的 .inf 文件未签名)。
请注意,libusb-win32 使用“旧”的 libusb API。
【讨论】: