0

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

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

任何人都可以提供任何代码示例来完成这项工作吗?

4

2 回答 2

1

基础知识指南,以及使用输入驱动程序和 api 的 c# 代码:http: //www.codeproject.com/KB/cs/csppleds.aspx

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

我花了很多时间研究这个,从来没有找到一个原生的单声道库。顺便说一句,串行端口更容易。

于 2012-12-11T00:01:32.397 回答
0

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

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

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

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

我需要在这里承认这篇文章:http ://www.moythreads.com/wordpress/2008/02/04/pinvoke-how-to-call-c-from-c/提供了最有帮助的让它工作.

于 2012-12-13T10:19:34.410 回答