混用KEYSIGHT-VISA,NI-VISA所引起的程序启动不正常

现象

  • GUI程序在客户环境下启动不显示窗口,没有内容提示
  • 看进程是活的,像是被什么给阻塞住了
  • 程序依赖于QT库和VISA
  • 首先检查QT库的正常加载
    • 由于不方便拆分出组件 widget,core,gui,network
    • 利用QT自带的例子来验证基本的gui库是否正常
    • 修改安装目录下的qt库名称,如qt5core.dll,看能否提示加载失败
    • 经过上面的操作判定QT库正常
  • 检查VISA库
    • 客户环境下安装了Keysight VISA和NI VISA的实现
    • 初步估计这两个库是不兼容的


      混用KEYSIGHT-VISA,NI-VISA所引起的程序启动不正常_第1张图片
      image.png

      混用KEYSIGHT-VISA,NI-VISA所引起的程序启动不正常_第2张图片
      image.png
    • 两个版本的大小有区别,Keysight的小,可能是因为Keysight中的实现只是一个包装器,真正的实现在另外的地方
    • 用depends打开查看符号表信息


      混用KEYSIGHT-VISA,NI-VISA所引起的程序启动不正常_第3张图片
      image.png

结论

  • NI-VISA和KEYSIGHT-VISA的实现不是二进制兼容的
  • 直接进行替换混用会导致程序启动不正常

你可能感兴趣的:(混用KEYSIGHT-VISA,NI-VISA所引起的程序启动不正常)