博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
qt调用仪器驱动库dll实现程控
阅读量:5103 次
发布时间:2019-06-13

本文共 1310 字,大约阅读时间需要 4 分钟。

在《》中实现了qt调用visa库的简单Demo

本文将尝试使用qt调用仪器驱动库来实现对仪器仪表的程控

开发环境

  • 系统: windows 10
  • 环境: qt 5.80
  • 库: visa 16.0 + ivi 16.0

配置过程

驱动库为动态库,主要包含.h,.lib,.dll,则按照调用动态库方式进行尝试

1. 添加依赖项

.pro文件中添加以下代码

win32 {    INCLUDEPATH += "C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Include"    INCLUDEPATH += "C:\Program Files (x86)\IVI Foundation\IVI\Include"    LIBS += "C:\Program Files (x86)\IVI Foundation\VISA\WinNT\lib\msc\visa32.lib"    LIBS += "C:\Program Files (x86)\IVI Foundation\IVI\Lib\msc\ivi.lib"    LIBS += "E:\WorkSpace\qtVisa\Demo\qt_dll_Demo\AVSA\AVSA.lib"}

2. 尝试调用库函数

#include 
#include "AVSA/AVSA.h"#include
int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); ViSession AVSA_Handler; ViByte rdBuff[100]; int retCount = 0; ViStatus status; status = AVSA_init("TCPIP0::127.0.0.1::5000::SOCKET", VI_FALSE, VI_FALSE, &AVSA_Handler); ViSession viAVSA_Handler = Ivi_IOSession(AVSA_Handler); retCount = viQueryf( viAVSA_Handler, "*IDN?\n", "%s", rdBuff); AVSA_close( AVSA_Handler); return a.exec();}

注意

  1. 由于驱动库使用ivi实现,所以在使用visa库中的viQueryf 时需要对句柄ViSession进行转换ViSession viAVSA_Handler = Ivi_IOSession(AVSA_Handler);

  2. 在调用代码时出现错误,During startup program exited with code 0xc0000135,需要将动态库dll文件放到可执行文件目录下才可以

参考

转载于:https://www.cnblogs.com/xbotao/p/6636755.html

你可能感兴趣的文章
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
iframe跨域与session失效问题
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
Hash和Bloom Filter
查看>>
SQL Server获取月度列表
查看>>
python常用函数
查看>>
python 描点画圆
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
pycharm 如何设置方法调用字体颜色
查看>>
VUE源码解析心得
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
整体二分——[Poi2011]Meteors
查看>>
数据库3
查看>>
delphi之事件
查看>>