只有python 3.6 32位异常。python 3.6 64位和python 3.8都正常。
而且只有几个函数会出参数溢出的报错,多数函数均可正常使用。
代码
version_info = sys.version_info
if(version_info.major>=3)and(version_info.minor>=8):
visa = WinDLL("visa32.dll",winmode=0) # python 3.8 需要加模式否则找不到函数
else:
visa = WinDLL("visa32.dll")
strRes=create_string_buffer(256)
def VISA_Read(vi_index):
visa.viScanf(vi_index, b'%t', byref(strRes))
return strRes.value
会报这个错误
visa.viScanf(vi_index, b'%t', byref(strRes))
ValueError: Procedure probably called with too many arguments (12 bytes in excess)
而且只有几个函数会出参数溢出的报错,多数函数均可正常使用。
代码
version_info = sys.version_info
if(version_info.major>=3)and(version_info.minor>=8):
visa = WinDLL("visa32.dll",winmode=0) # python 3.8 需要加模式否则找不到函数
else:
visa = WinDLL("visa32.dll")
strRes=create_string_buffer(256)
def VISA_Read(vi_index):
visa.viScanf(vi_index, b'%t', byref(strRes))
return strRes.value
会报这个错误
visa.viScanf(vi_index, b'%t', byref(strRes))
ValueError: Procedure probably called with too many arguments (12 bytes in excess)