最近又重新拾起了基于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的一些说明,在这里复制一下: