qt调用仪器驱动库dll实现程控

摘要:
在“使用qt+visa进行程序控制”中实现了用qt调用visa库的简单演示。本文将尝试使用qt调用仪器驱动程序库来实现仪器仪表的可编程开发环境系统:windows10环境:qt5.80库:visa16.0+ivi16.0将过程驱动程序库配置为动态库,主要包括。h、 ,。库,。dll,然后尝试调用动态库。1.添加依赖项。添加以下代码win32{INCLUDEPATH+=“C:ProgramF

在《使用qt+visa实现程控》中实现了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 FoundationVISAWinNTInclude"
    INCLUDEPATH += "C:Program Files (x86)IVI FoundationIVIInclude"
    LIBS += "C:Program Files (x86)IVI FoundationVISAWinNTlibmscvisa32.lib"
    LIBS += "C:Program Files (x86)IVI FoundationIVILibmscivi.lib"
    LIBS += "E:WorkSpaceqtVisaDemoqt_dll_DemoAVSAAVSA.lib"
}

2. 尝试调用库函数

#include <QCoreApplication>
#include "AVSA/AVSA.h"
#include <visa.h>

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?
", "%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文件放到可执行文件目录下才可以

参考

免责声明:文章转载自《qt调用仪器驱动库dll实现程控》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇django-QueryDictWindows Phone开发-开发环境和结构下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DLL劫持 LPK.dll

/ 上次写了USP10的,这次把LPK的代码贴出来. //以下文件在 lpk.cpp 中,头文件和上次USP10的相同 // lpk.cpp : Defines the entry point for the DLL application. // //////////////////////////////////////////////////////...

C#--反射基础

以下是学习笔记: 一,反射的基本信息 DLL/EXE: 主要区别EXE文件有一个入口,DLL文件不能运行,但是DLL能拿到其他地方去使用 metadata(元数据):描述exe/dll文件的一个清单,记录了exe/dll文件中有哪些类,属性,特性,字段。。。 Reflection(反射):用来操作或获取元数据metadata 有什么作用: 1,更新程序(...

Linux头文件和库文件添加环境变量与GCC编译器添加INCLUDE与LIB环境变量

  对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的 .bashrc或.bash_profile里增加下面的内容: (注意:等号前面不要加空格,否则可能出现 command not found) #在PATH中找到可执行文件程序的路径。 export PATH =$PATH:$HOME/bin #gcc找到头文件的...

VS中合并dll 方便发布

     过程简介:在VS2012中通过NuGet安装ILmerge和MSBuild.ILMerge.Task,在程序编译时,经过这两个插件直接自动将exe和dll打包成一个exe放置在debug或release文件夹中,或者将dll合成一个dll。    首先,我们需要当前VS所适配的最新的NuGet,这一点可以在Nuget官网下载相应版本或者将VS更新...

iOS 项目优化

前言 iOS性能优化系列篇之“优化总体原则” 不要提前过度优化 要找到性能瓶颈 要在不同性能指标间权衡 要理解优化任务的底层运行机制 要有技术保障体系 一、启动速度优化 1.1 学习文章 WWDC 启动速度优化视频 Session 406 Optimizing App Startup Time iOS性能(二) 启动时间优化 1.2 操作步骤...

AutoCAD自动加载DLL文件的方法

让CAD打开以后自动加载DLL文件的步骤如下:      1.找到你CAD目录的安装目录的启动支持文件,例如:C:\Program Files\AutoCAD 2006\Support\acad2006.lsp      2.打开acad2006.lsp文件 ,在最后输入(command "netload" "E:\\PowerSupplyManager\...