У меня есть следующий код:
num1=10.1234
int1=10
ret=GetOutput(int1,num1)
Функция GetOutput определяется как
def GetOutput(int2, num2):
lib = ctypes.WinDLL("mydllname.dll")
prototype = ctypes.WINFUNCTYPE(ctypes.c_int, ctypes.c_int, ctypes.POINTER(ctypes.c_double * 4096))
paramflags = (1, "int2",), (1, "num2",),
GetOutput = prototype(("GetOutput", lib), paramflags)
ret=GetOutput(int2, num2)
return ret
Я получаю следующую ошибку, и я запрашиваю вашу любезную помощь.
LP_c_double_Array_4096 instance instead of float
Если я конвертирую num1 как:
num1=list(range(4096))
int1=10
ret=GetOutput(int1,num1)
, я получаю следующую ошибку:
LP_c_double_Array_4096 instance instead of list
, если я конвертирую num1 в массив следующим образом:
num1=list(range(4096))
int1=10
for item in num1:
arrayA = array("i", num1)
ret=GetOutput(int1,arrayA)
я получаю следующие ошибки:
<class 'TypeError'>: expected LP_c_double_Array_4096 instance instead of array.array
Пожалуйста, объясните как можно больше, насколько я новичок в программировании, и у меня только очень предварительное / базовое понимание OOPS, списков, кортежей,указатели и т. д. и без понятия о ctypes.
Спасибо