मैं एक संरचना जो मुझे समारोह 'foo_write' के लिए समारोह 'बार' से वापसी के मूल्य के रूप में दिया जाता है की एक सूचक पारित करने के लिए प्रयास करें। लेकिन मैं त्रुटि संदेश 'लेखन त्रुटि: एक ctypes प्रकार होना चाहिए' प्राप्त लाइन 'foo = सूचक (temp_foo)' के लिए। ctypes online help में मैंने पाया कि 'ctypes.POINTER' केवल ctypes प्रकार के साथ काम करता है। क्या आप किसी अन्य तरीके से जानते हैं? आप क्या सुझाव देंगे?ctypes में एक संरचना के लिए एक सूचक वापस कैसे करें?
सी:
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 * 'वापस करने के लिए बार()? – Clifford
क्या आपने 'ctypes आयात * से छोड़ा है? – Clifford