我在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都将点亮;但是什么也没发生,执行前打开的领导保持不变,关闭的领导也处于同样的情况。
与“Out32(888,0);”相同,没有关闭led。
上面的代码有什么问题?我在64位操作系统(Windows 8)上工作时使用了“Inpoutx64.dll”。我还在项目属性>链接>输入>其他依赖项中包含了'Inpoutx64.lib'。
我还已经将“inpoutx64.dll”复制到Windows /系统32
最佳答案
确保inpoutx64.dll
与生成的.exe
文件位于同一目录中,并已运行InstallDriver.exe
附带的inpoutx64.dll
程序并允许UAC提升,以便安装所需的系统驱动程序。
关于c++ - 可视C++并行端口控制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15182777/