我在 Visual c++ 中编写了这段代码来通过并行端口控制 LED:
// InpoutTest.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include <conio.h>
short _stdcall Inp32(short PortAddress);
void _stdcall Out32(short PortAddress, short data);
int main(int argc, char* argv[])
{
Out32(888, 255);
system("pause");
Out32(888, 0);
return 0;
}
现在,我想到的是'Out32(888, 255);'这一行 将在所有数据寄存器中写入 1,并且从 D0 连接到 D7 的所有 LED 将打开;但什么也没发生,执行前打开的 LED 仍然打开,并且与关闭的 LED 相同。
'Out32(888, 0);' 的情况也是如此,没有关闭任何 LED。
上面的代码有什么问题?我在 64 位操作系统(Windows 8)上工作时使用了“Inpoutx64.dll”。我还在项目属性>链接>输入>附加依赖项中包含了“Inpoutx64.lib”。
我还将“inpoutx64.dll”复制到 Windows/system 32