3

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

4

1 回答 1

1

确保您inpoutx64.dll与生成的文件位于同一目录中.exe,并且您已运行InstallDriver.exe包含的程序inpoutx64.dll并允许 UAC 提升,以便安装所需的系统驱动程序。

于 2013-03-03T07:27:15.667 回答