1

我在使用 C 时遇到了一些问题。我正在尝试在 VS 2010 Ultimate 中的 Windows 7 Professional x64 中编写并行端口。由于我没有并行端口,因此我使用 USB->Parallel 的转换器,Windows 正确安装了驱动程序。我在并行连接器的末端焊接了 8 个 LED,当我将 USB 连接到计算机时,它们都工作正常。现在,我想通过我用 C 编写的程序来控制并行端口,即:

#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <Windows.h>
/********************************************/
/*This program set the parallel port outputs*/
/********************************************/

void main (void)
{
//clrscr();            /* clear screen */
_outp(0x378,0xff); /* output the data to parallel port */
getch();              /* wait for keypress before exiting */
}

该程序已编译并运行,但我收到一条错误消息:

Unhandled exception at 0x00f313a5 in portovi.exe: 0xC0000096: Privileged instruction.

我已经读到端口 IO 在 Windows NT 机器中被禁用,并且您需要特定的驱动程序来执行此操作。有什么解决办法吗?

4

2 回答 2

1

有办法解决这个问题。例如见这里

于 2011-04-27T17:23:12.790 回答
0

您的 USB->parallel 转换器具有创建虚拟并行端口的驱动程序。它实现了 Windows 并口 API。它没有实现 PC/AT 并口寄存器级 API,即使你被允许写 I/O 端口0x0378,你也不会在那里找到任何东西。只有系统总线(ISA 或 PCI)上真正的 PC/AT 并行端口使用该寄存器。

于 2011-04-27T17:53:47.860 回答