gpt4 book ai didi

c# - 并行端口与 C#

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:42 25 4
gpt4 key购买 nike

我正在尝试使用 C# 程序将数据发送到 LPT1 端口,不幸的是没有成功。我正在使用 Windows 7 x64。我尝试了 x86 和 x64 (inpoutx64.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++ 代码)上做了类似的东西,我希望它也可以在 win7 上运行......请帮我解决这个问题。

谢谢。

最佳答案

_outp 使用的意义上的 IO 端口与您尝试对并行端口执行的操作不同。 IO 端口是一种处理器级别的方式,用于获取对不同设备的原始访问权限。将 IO 端口与 _outp 一起使用应该是设备驱动程序所做的事情。因此它在 any version of windows that's modern enough 中享有特权(即仅内核)具有良好的内核/用户空间分离(即基于 Windows NT 的任何东西)。我几乎 100% 肯定您从未得到 _outp 来在 XP 上工作。

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

关于c# - 并行端口与 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2940371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com