Qt访问电脑的并口资源(亲测有效)
最近,我使用Qt编写了一个刺激界面,实验过程中,需要用到并口给脑电和肌电设备打标签,但在win10的64位操作系统下无法通过windows
api中的WriteFile
(头文件为windows.h
)函数发送数据,会遇到程序未响应的情况,所以查了很多资料。
其中一种解决方法是使用winio
,但只能在windows的测试系统下使用。第二种方法是使用InpOut32动态库,该方法比较简单。因此我将详细介绍这种方法。
一、下载资源
- 在InpOut32 and InpOutx64官网:http://www.highrez.co.uk/Downloads/InpOut32/下载动态库
- 下载完成后解压,在x64文件中有我们需要的h和dll文件。
- 将dll文件复制到
C:\Windows\System32
下。
二、新建Qt项目
-
将上述的头文件
inpout32.h
和dll文件inpoutx64.dll
放在Qt项目的文件夹下(与mainwindow
在同一文件夹下),在Qt项目名称上右击,添加现有文件,选择inpout32.h
。如果inpout32.h
有很多报错警告,则在其内部添加头文件#include<windows.h>
。 -
在Qt的pro中输入
LIBS += "E:\Study\C++\qt\project\test4\inpoutx64.dll"
,这个路径就为dll的路径(dll已经移动到与mainwindow
同一文件夹下)。 -
在
mainwindow.h
内添加extern "C" { #include "inpout32.h" }
-
在
mainwindow.cpp
文件中添加头文件#include "inpout32.h"
。
三、测试
在mainwindow的初始化函数中输入Out32(888, 1);
进行测试,当出现
Attempting to open InpOut driver...
Successfully opened inpoutx64 driver
表明配置成功(Out32的第一个参数是并口地址(十进制),第二个参数是传输数据)
补充:QT版本是5.14.1 MinGW 64-bit