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.

Windows NT マシンではポート IO が無効になっており、そのためには特定のドライバーが必要であると読みました。それに対する解決策はありますか?

4

2 に答える 2

1

これを回避する方法があります。たとえば、ここを参照してください。

于 2011-04-27T17:23:12.790 に答える
0

USB->パラレル コンバータには、仮想パラレル ポートを作成するためのドライバがあります。Windows パラレル ポート API を実装します。PC/AT パラレル ポート レジスタ レベルの API は実装されていません。I/O port への書き込みが許可されていたとしても、0x0378そこには何も見つかりません。システム バス (ISA または PCI) 上の実際の PC/AT パラレル ポートだけがそのレジスタを使用します。

于 2011-04-27T17:53:47.860 に答える