小弟最近在做用VC++编程控制agilent N9010A频谱仪。下面是程序。每次程序运行后都是返回“Could not open a session to GPIB device at address 18!”。分步调试时到viStatus =viOpen (defaultRM, "GPIB::18::INSTR", VI_NULL,VI_NULL,&viMXA);这一步时,viStatus的值就变成非0了。不知道原因是什么。还有分步调试时输出信息有一句 ““pinpu.exe”: 已加载“C:\Windows\System32\Visa32.dll”,未使用调试信息生成二进制文件。”不知道是不是这个原因。求各位大神指点!!
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include "visa.h"
#include "visatype.h"
#pragma comment(lib,"visa32.lib")
void main () 
{
/*program variables*/
ViSession defaultRM, viMXA;
ViStatus viStatus =0 ;   viStatus =viOpenDefaultRM (&defaultRM);
viStatus =viOpen (defaultRM, "GPIB::18::INSTR", VI_NULL,VI_NULL,&viMXA);

/*check opening session sucess*/
if(viStatus)
  {
    printf("Could not open a session to GPIB device at address 18!\n");
exit(0);
  }

/*increase timeout to 60 sec*/
viSetAttribute(viMXA,VI_ATTR_TMO_VALUE,60000);

/*Clear the analyzer*/
viClear(viMXA); /*Clear all event registers*/
    viPrintf(viMXA, "*CLS\n"); /* Reset the MXA */
viPrintf(viMXA, "*RST\n"); viPrintf(viMXA, "FREQ:CENT 50MHz\n");
viPrintf(viMXA, "FREQ:SPAN 20MHz\n");
viPrintf(viMXA, "CALC:MARK1:MAX\n");
viPrintf(viMXA, "MMEM:STOR:RES:PTAB “myResults.csv”");


/* Close session */
viClose (viMXA);
viClose (defaultRM);
}vc++编程VISA频谱仪GPIB