簡體   English   中英

C 中的特權指令

[英]Privileged instruction in C

我在使用 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 機器中被禁用,並且您需要特定的驅動程序來執行此操作。 有什么解決辦法嗎?

有辦法解決這個問題。 例如見這里

您的 USB->parallel 轉換器具有創建虛擬並行端口的驅動程序。 它實現了 Windows 並行端口 API。 它沒有實現 PC/AT 並行端口寄存器級 API,即使您被允許寫入 I/O 端口0x0378 ,您也不會在那里找到任何東西。 只有系統總線(ISA 或 PCI)上真正的 PC/AT 並行端口使用該寄存器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM