首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

visa32.dll 有关问题

2013-01-02 
visa32.dll 问题在VB中声明以下函数Declare Function viOpenDefaultRM Lib VISA32.DLL Alias #141 (se

visa32.dll 问题
在VB中声明以下函数
Declare Function viOpenDefaultRM Lib "VISA32.DLL" Alias "#141" (sesn As Long) As Long
Declare Function viFindRsrc Lib "VISA32.DLL" Alias "#129" (ByVal sesn As Long, ByVal expr As String, vi As Long, retCount As Long, ByVal desc As String) As Long
调用时  Call viOpenDefaultRM(defrm)
   Call viFindRsrc(defrm, "USB?*", list, nmatches, matches)
能发现设备 nmatches=1
而用delphi做以下声明 
function viOpenDefaultRM(var sesn: integer): Integer; stdcall;external 'visa32.dll' ;
function viFindRsrc(sesn: integer; expr: string; vi: integer; var retCount: integer; var desc: string): integer; stdcall; external 'visa32.dll';
调用时
  viopendefaultrm(rm);
  viFindRsrc(rm,'usb?*',list,nmatches, matches);
没发现设备 nmatches=0
请问哪错了。请各位大侠指点一下吧!


[解决办法]
function viOpenDefaultRM(var sesn: integer): Integer; stdcall;external 'visa32.dll' ;
function viFindRsrc(sesn: integer; expr: PChar; vi: integer; var retCount: integer; desc: PChar): integer; stdcall; external 'visa32.dll';
调用时
  s := 'usb?*';
  viopendefaultrm(rm);
  viFindRsrc(rm,PChar(s),list,nmatches, PChar(matches));
[解决办法]
matches定义为Array[0..254] of Char;试下
[解决办法]
#2那个读错误,我个人认为是string处出错,因为VB的string是UNICODE,而低版本DELPHI是ANSI

热点排行