控制USB端口

我可以发送特定的信号到USB端口使用ruby或C + +,也是操作系统是Windows,所以这就像全新的4我(为Windows编程),所以我想做它作为一个DLL文件,可以DLL包含Ruby代码?

顺便说一句,这只是一个培训项目,所以这不重要,我只是在窗口下练习这些东西。

我在这里看到两个不同的问题。 所以我会试着去分开他们

如何从您的代码控制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的一串红宝石代码。
  • ruby2c项目可以将一些ruby代码(不是全部)转换成c。 这个C代码可以编译。 有关更多信息,请访问http://rubyforge.org/projects/ruby2c/

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