我在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/

10-11 04:49