基于VISA的编程中,ViString与CString之间转换的关系

本文介绍了在基于VISA的编程中遇到的ViString与CString转换问题。当尝试使用CString直接作为viPrintf函数参数时,出现错误。通过研究Agilent的文档和VISA Assistant,发现在发送文本指令时,ViString可能需要附加' '。解决方法是在CString末尾添加' ',从而成功进行转换和传输。
摘要由CSDN通过智能技术生成

最近又重新拾起了基于VISA的编程,对Agilent的U2700系列进行控制。

调试过程中想到用自己的界面向仪器发送“文本指令”,手动输入SCPI标准指令,在viPrintf()函数中涉及到了第二个变量需要时ViString的情况。

直接将CString放到函数里是不成功的,

代码如下:

</pre><pre name="code" class="cpp">CString m_TestCommand;
viPrintf(instr, m_TestCommand );


提示错误:

错误 1 error C2664: “ViStatus viPrintf(ViSession,ViString,...)”: 无法将参数 2 从“CString”转换为“ViString”

显然,ViString与CString之间还是有区别的,相同情况下,由ViString向CString赋值是不存在问题的,如此看来ViString的格式中比CString要多点东西。

Agilent关于ViString的一些说明,在这里复制一下:

VISA Type Definitions&#
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值