这不起作用:
def CopyExportVars(self, n_export):
export_array = (ctypes.c_double * n_export)()
self.dll_handle.vs_copy_export_vars(ctypes.cast(export_array, ctypes.POINTER(ctypes.c_double)))
return export_array().contents
我收到此错误(n_export
为3):
TypeError: 'c_double_Array_3' object is not callable
答案 0 :(得分:1)
错误是非常自我解释的。 export_array
不是可调用对象,但您尝试在最后一行函数中调用它。此外,您尝试使用与指针相关的接口('.contents')从数组中检索值,而不是指向它的指针。
使其工作的最简单方法是将ctypes
结果数组转换为纯Python对象并返回它:
def CopyExportVars(self, n_export):
export_array = (ctypes.c_double * n_export)()
self.dll_handle.vs_copy_export_vars(ctypes.cast(export_array, ctypes.POINTER(ctypes.c_double)))
return list(export_array)