我遇到了一些问题。我正在尝试在VS 2010 Ultimate中的Windows 7 Professional x64中编写并行端口。 由于我没有并行端口,我使用USB转换器> Parallel和Windows正确安装了驱动程序。 我已经在并行连接器的末端焊接了8个LED-s,当我将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.
我已经读过在Windows NT机器中禁用了端口IO,并且需要特定的驱动程序才能执行此操作。有什么解决方案吗?
答案 0 :(得分:1)
有很多方法可以解决这个问题。例如,请参阅here。
答案 1 :(得分:0)
您的USB-&gt;并行转换器具有创建虚拟并行端口的驱动程序。它实现了Windows并行端口API。它没有实现PC / AT并行端口寄存器级API,即使您被允许编写I / O端口0x0378
,也不会在那里找到任何东西。只有系统总线上的真实PC / AT并行端口(ISA或PCI)才能使用该寄存器。