나는 'bar'함수에서 반환 값으로 주어진 구조체의 포인터를 함수 'foo_write'에 전달하려고합니다. 하지만 'TypeError : 줄'foo = POINTER (temp_foo)에 대한 ctypes 형식이어야합니다 '오류 메시지가 나타납니다. ctypes online help에서 'ctypes.POINTER'는 ctypes 유형에서만 작동합니다. 다른 방법을 알고 있습니까? 무엇을 추천하나요?ctypes에서 구조체에 대한 포인터를 반환하는 방법은 무엇입니까?
C :하는 ctypes와
typedef struct FOO_{
int i;
float *b1;
float (*w1)[];
}FOO;
foo *bar(int foo_parameter) {...
void foo_write(FOO *foo)
파이썬 :
class foo(Structure):
_fields_=[("i",c_int),
("b1",POINTER(c_int)),
("w1",POINTER(c_float))]
temp_foo=foo(0,None,None)
foo = POINTER(temp_foo)
foo=myclib.bar(foo_parameter)
myclib.foo_write(foo)
'foo *'가 아닌'FOO * '를 반환하는 bar()를 사용 했습니까? – Clifford
'from ctypes import *'를 생략 했습니까? – Clifford