在Linux中使用C#Mono控制并行端口



根据标题,我想在Ubuntu中使用C#控制一个并行(LPT)端口。

Mono中是否有任何内置库可以让我做到这一点?

有人能举一些代码例子说明这一点吗?

使用inpout驱动程序和api的基本指南和c#代码:http://www.codeproject.com/KB/cs/csppleds.aspx

更通用的链接集合,包括与并行端口相关的技术和软件:http://www.lvr.com/parport.htm

我花了相当长的时间研究这个,从来没有发现一个原生的单声道库。它更容易串行端口btw.

虽然我承认Jesper的贡献,但我觉得他的回答是不完整的,最初的回答只引用了Dai指出的Windows代码。Jesper关于P/Invoke的后续评论确实让我找到了答案。

我已经记录了我的完整解决方案,包括这里的代码示例:http://www.iaincarlin.com/ylsned/controlling-the-parallel-port-using-ubuntu-mono-and-c/但是,简而言之:

  • C#Mono中似乎没有用于访问并行端口的本机库
  • P/invoke是必需的,为了访问LPT1端口,我必须创建一个可以使用DLLImport调用的本机C++应用程序
  • C++应用程序本质上为io库outb函数提供了一个包装器,我可以从C调用它#

我上面的博客文章包含了关于我所做事情背景的更多细节。我本可以用原生C++做同样的事情(事实上,将现有的Dos代码移植到Linux会更容易),但我想用Mono进行实验,这是一种实用的方法

我需要在这里确认帖子:http://www.moythreads.com/wordpress/2008/02/04/pinvoke-how-to-call-c-from-c/这对实现这一目标最有帮助。

最新更新