关于NI-VISA 的一个问题

碎碎念 2015-01-05 09:15:08
之前,用VC6+NI Measurement Studio 开发一个泰克DOP7万系列的示波器远程监控程序,现在平台由VC6编程了QT+QWT,对示波器访问用的程序库依然是NI-VISA,程序写出来,如果编译成debug 版本,可以正常运行,但是编译成 release 版本时,程序的界面可以正常运行起来,但是无法正常访问示波器,这个是NI-VISA程序库的问题吗?
...全文
429 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
碎碎念 2015-03-06
  • 打赏
  • 举报
回复
这个问题是我大意了,主要原因在与debug版和release版对于变量的默认值不同,因为这个倒是界面起来了,但是有些功能没起来。。。
赵4老师 2015-01-05
  • 打赏
  • 举报
回复
使用depends.exe查看你release版exe依赖的dll
赵4老师 2015-01-05
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。 代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
碎碎念 2015-01-05
  • 打赏
  • 举报
回复
P.S. NI的程序库主要是指 vise32.dll,没看到相关的说明,说这个是debug或者是release版的,但是如果是dll版本调用的问题,应该会提示“无法找到visa**.dll”一类的,但是,什么都没提示,就是无法正常对示波器访问。
孤影品茗 2015-01-05
  • 打赏
  • 举报
回复
引用 1 楼 lanxue_1988 的回复:
P.S. NI的程序库主要是指 vise32.dll,没看到相关的说明,说这个是debug或者是release版的,但是如果是dll版本调用的问题,应该会提示“无法找到visa**.dll”一类的,但是,什么都没提示,就是无法正常对示波器访问。
visa32.dll在system32目录下的是release版本的,这并不影响调试,关键看你链接时候用导入库lib文件的类型,据我所知,默认使用release版本链接,所以不管你自己的程序是debug或者release,应该都使用release的visa32.dll。 如果debug模式无法复现问题,建议在release版本中添加记录,输出到文本,查看出错原因

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧