3

我可以使用 Ruby 或 C++ 将特定信号发送到 USB 端口吗,操作系统也是 Windows,所以这就像全新的 4 me(为 Windows 编程),所以我试图将其作为 DLL 文件来执行,可以吗? DLL 包含 Ruby 代码??

顺便说一句,这只是一个培训项目,所以没关系,我只是在windows下练习那些东西。

4

1 回答 1

1

我在这里看到两个单独的问题。因此,我将尝试分别对它们进行答复。

如何通过代码控制 USB 设备

是的,您可以通过自己的代码控制 USB 设备。使用 libusb,您可以完成普通 USB 驱动程序所做的一切。请注意,您不是使用它们所在的端口来寻址它们,而是使用它们的制造商和设备 ID。在 linux 下,这适用于任何 USB 设备。在 Windows 下,您必须以某种方式安装 libusb 作为您不想控制的设备的驱动程序。在http://www.libusb.org/上查看有关 libusb 的更多信息。win32 的 libusb 托管在http://libusb-win32.sourceforge.net/上。

如果您不想在 ruby​​ 中使用 libusb,则必须使用某种 c 绑定。您可以使用http://www.akr.org/ruby-usb/或编写自己的绑定。

如何编译 ruby​​ 代码

这不是我的专业领域,但正如你提出的两个问题一样。我会尝试回答它。

实际上有编译ruby的方法。

  • 您可以编写一个 C 程序,其中包含 ruby​​ 解释器和 eval 的一串 ruby​​ 代码。
  • ruby2c 项目可以将一些 ruby​​ 代码(不是全部)翻译成 c。可以编译此 c 代码。在http://rubyforge.org/projects/ruby2c/上查看更多信息。

您还应该考虑,在您的情况下编译 ruby​​ 代码是否有意义。如果您正在编写一个混合的 c ruby​​ 程序,您可以为 ruby​​ 制作所有 c 部分 c 扩展。这样你的 ruby​​ 就不需要编译了。你不想用 ruby​​ 为 c 写一个库吗?这可能意味着对使用这个库的 c 程序的巨大性能影响。

于 2009-10-31T14:56:41.743 回答