Python ctypes<;类型';例外。类型错误'&燃气轮机;
下面是我试图用python构建包装器的代码 这是total.py文件(*c_t是长度为7的空数组(将在函数中计算),t和rh是长度为Na的数组) 还有python功能Python ctypes<;类型';例外。类型错误'&燃气轮机;,python,ctypes,Python,Ctypes,下面是我试图用python构建包装器的代码 这是total.py文件(*c_t是长度为7的空数组(将在函数中计算),t和rh是长度为Na的数组) 还有python功能 def ini_SR(t, rh, Na): c_time = ctypes.POINTER(ctypes.c_double * 7) c_freq = _inSR(c_time,t,rh,Na) return c_time.value, c_freq 错误: 文件“”,第1行,在 File "total
def ini_SR(t, rh, Na):
c_time = ctypes.POINTER(ctypes.c_double * 7)
c_freq = _inSR(c_time,t,rh,Na)
return c_time.value, c_freq
错误:
文件“”,第1行,在
File "total.py", line 28, in ini_SR
c_time = ctypes.POINTER(ctypes.c_double * 7)
ctypes.ArgumentError: argument 1: <type 'exceptions.TypeError'>: expected LP_c_double instance instead of _ctypes.PyCPointerType
文件“total.py”,第28行,在ini\u SR中
c_time=ctypes.POINTER(ctypes.c_double*7)
ctypes.ArgumentError:参数1::应为LP_c_双实例,而不是_ctypes.PyCPointerType
线路
c_time = ctypes.POINTER(ctypes.c_double * 7)
声明一个类型。您需要将类型的实例传递给C函数调用,而不是类型本身
尝试将此行替换为
c_time_type = ctypes.POINTER(ctypes.c_double * 7)
c_time = c_time_type()
(你可以改为写
c_time=ctypes.POINTER(ctypes.c_double*7)(
)-注意结尾的括号-但我觉得不太清楚。)谢谢你的回答。但是,我得到了OSError:exception:access invalization writing 0x68743078
@hamaney:如果您有一个单独的问题要问(例如,“我为什么会遇到这个错误?”),请另外问一个问题。还请在这个问题中包含生成您所看到的错误的代码:我猜它与这个问题中的不完全相同。
c_time_type = ctypes.POINTER(ctypes.c_double * 7)
c_time = c_time_type()