I am trying to send data to LPT1 port with a C# program, unfortunately with no success..
I am using windows 7 x64.
I tried both x86 and x64 (inpoutx64.dll) dll’s..
With the x64 dll when I send:
Output(888, 255);
It just continues the program as everything went ok, but i can’t see anything on my multimeter (only the static 0.02V)..
I also tried the following with C++:
int main () {
int val = 0;
printf("Enter a value\n");
scanf("%d", &val);
_outp(0x378, val);
getchar();
_outp(0x378, 0);
return 0; }
But it throws an exception:
Unhandled exception at 0x01281428 in ppac.exe: 0xC0000096: Privileged instruction.
I remember once I made something like this work on xp (C# not the C++ code), I hope it’s possible on win7 too..
Please help me with this.
Thanks.
An IO port in the sense used by
_outpisn’t the same as what you’re trying to do with a parallel port. An IO port is a processor-level way to get raw access to different devices. The use of IO ports with_outpis supposed to be the kind of thing device drivers do. It is therefore privileged (i.e. kernel only) in any version of windows that’s modern enough to have good kernel/userspace separation (namely anything based on Windows NT). I’m almost 100% certain you never got_outpto work on XP.To access the parallel port in high-level code, just open it like a normal file, using the filename
LPT1:.