DELPHI如何通过VISA与USB设备通信

Private Sub Command1_Click()
Dim defrm As Long
Dim vi As Long

' 获得visa的usb资源
Call viOpenDefaultRM(defrm)

' 打开设备
Call viOpen(defrm, "USB0::0x1AB1::0x0E11::DP8F192200227::INSTR", 0, 0, vi)

'发送设置命令
Call viVPrintf(vi, ":OUTP CH1,ON" + Chr$(10), 0)

' 关闭资源
Call viClose(vi)
Call viClose(defrm)
End Sub
以上是VB编写的通过USB控制DP831直流电源的程序,测试没问题。但我将该段代码转换成Delphi后,运行报错,请高手指点下迷津!以下是我的Delphi代码

function viOpenDefaultRM(sesn1:PLongint):Longint;stdcall external 'visa32.dll';
function viOpen(sesn1:PLongint;rsrcName:PChar;acessMode:Longint;timeout:Longint;sesn2:PLongint):Longint;stdcall external 'visa32.dll';
function viPrintf( vi:PLongint; writeFmt:pchar;ss:Longint): integer; Cdecl; external 'VISA32.DLL' ;
function viClose(sesn:PLongint):Longint;stdcall external 'visa32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
defrm,vi:PLongint;
begin
// 获得visa的usb资源
viOpenDefaultRM(defrm);
//打开设备
viOpen(defrm,'USB0::0x1AB1::0x0E11::DP8F192200227::INSTR', 0, 0, vi);
//发送设置命令
viPrintf(vi,':OUTP CH1,ON'+#10, 0);
viClose(vi);
viClose(defrm);
end;
不知是哪里出了问题?

1个回答

怎么没人呢,自己先顶一下!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问