代码之家  ›  专栏  ›  技术社区  ›  Michael S.

带C的并行端口#

  •  4
  • Michael S.  · 技术社区  · 16 年前

    我正试图用C程序将数据发送到LPT1端口,但不幸的是没有成功。 我正在使用Windows 7 x64。 我尝试了x86和x64(inputx64.dll)dll的。

    发送时使用x64 dll:

    Output(888, 255);
    

    它只是继续程序,一切正常,但我看不到我的万用表上的任何东西(只有静态0.02V)。

    我也尝试了下面的C++:

    int main () {
    int val = 0;
    printf("Enter a value\n");
    scanf("%d", &val);
    _outp(0x378, val);
    getchar();
    _outp(0x378, 0);
    return 0; }
    

    但它抛出了一个例外:

    Unhandled exception at 0x01281428 in ppac.exe: 0xC0000096: Privileged instruction.
    

    我记得有一次我在XP上做了这样的工作(C不是C++代码),我希望在Wi7上也有可能。 请帮我这个。

    谢谢。

    1 回复  |  直到 16 年前
        1
  •  6
  •   Ken Bloom    16 年前

    IO端口的意义是 _outp 与您尝试使用并行端口时所做的不同。IO端口是一种处理器级的方法,用于获取对不同设备的原始访问。IO端口的使用 γ输出 应该是设备驱动程序所做的事情。因此,它在 any version of windows that's modern enough 具有良好的内核/用户空间分离(即基于Windows NT的任何内容)。我几乎百分之百地肯定你从来没有 γ输出 在XP上工作。

    要访问高级代码中的并行端口,只需像普通文件一样打开它,使用文件名 LPT1: .

    推荐文章