我有一个共享库函数,我正在通过ctype加载该函数:
double volts_USB1608G(usb_dev_handle *udev, const __u8 gain, __u16 value)
{
double volt = 0.0;
switch (gain) {
case BP_10V:
volt = (value - 32768.)*10./32768.;
break;
case BP_5V:
volt = (value - 32768.)*5./32768.;
break;
case BP_2V:
volt = (value - 32768.)*2./32768.;
break;
case BP_1V:
volt = (value - 32768.)*1./32768;
break;
}
return volt;
}在python中调用它时,返回一个整数值:
mcc_lib = cdll.LoadLibrary("libmcchid.so")
value = 0x80d5
gain = 1 #BP_5V
volts = mcc_lib.volts_USB1608G(daq.udev, gain, value)
print volts, type(volts)产出:
5117992 <type 'int'>有什么办法可以强迫打字吗?
谢谢
发布于 2015-09-02 12:41:16
来自由eryksun,docs.python.org/2/library/ctypes.html#return-types提供的教程
默认情况下,假定函数返回can类型。其他返回类型可以通过设置函数对象的restype属性来指定。
mcc_lib = cdll.LoadLibrary("libmcchid.so")
value = 0x80d5
gain = 1 #BP_5V
mcc_lib.volts_USB1608G.restype = c_double
volts = mcc_lib.volts_USB1608G(daq.udev, gain, value)
print volts, type(volts)https://stackoverflow.com/questions/31974350
复制相似问题