如何在C ++上设置和读取并行端口上的引脚?

时间:2011-02-13 18:11:32

标签: c++ serial-port device-driver

我正在帮助一位朋友完成一个最后一年的项目,在这个项目中他有一个我们想要使用C ++程序打开和关闭的电路。

image of what i want

我最初认为这很容易,但我没有实施这个程序。 主要问题是

  • Windows XP及更高版本不允许直接访问硬件,因此some websites表示我需要编写驱动程序或查找驱动程序。
  • 我也在网上查看了一些项目,但它们似乎适用于Windows XP,但无法用于Windows 7。
  • 此外,大多数项目都是用VB或C#编写的,我不熟悉。

问题:

  • 是否有合适的驱动程序适用于Windows XP和Windows 7,如果是,我如何在我的代码中使用它? (代码片段将不胜感激)
  • 是否有交叉平台方式处理与并行端口的通信?

2 个答案:

答案 0 :(得分:3)

您不需要编写驱动程序或任何内容 - 只需使用"LPT1"等文件名调用CreateFile即可打开并行端口的句柄,然后您可以使用{{ 3}}向它写入数据。例如:

HANDLE parallelPort = CreateFile("LPT1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(parallelPort == INVALID_HANDLE_VALUE)
{
    // handle error
}
...
// Write the string "foobar" (and its null terminator) to the parallel port.
// Error checking omitted for expository purposes.
const char *data = "foobar";
WriteFile(parallelPort, data, strlen(data)+1, NULL, NULL);
...
CloseHandle(parallelPort);

答案 1 :(得分:3)

查看代码项目:hereherehere。你会找到宝藏。

第一个链接适用于Windows 7 - 32位和64位。