"Bar" işlevinden "foo_write" işlevine dönüş değeri olarak verilen bir yapının işaretçisini göstermeye çalışıyorum. Ama hata mesajı 'TypeError:' 'caydırıcı tip olmalı' 'satırında' foo = POINTER (temp_foo) 'mesajı alıyorum. ctypes online help'da 'ctypes.POINTER' yalnızca klişe türleri ile çalıştığını fark ettim. Başka bir yol biliyor musun? Ne önerirsiniz?Klişe içindeki bir yapıya bir işaretçi nasıl geri dönülür?
C: ctypes ile
typedef struct FOO_{
int i;
float *b1;
float (*w1)[];
}FOO;
foo *bar(int foo_parameter) {...
void foo_write(FOO *foo)
Python:
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)
Bunu mu demek istediniz: bar() 'foo *' yerine 'FOO *' döndürüyor mu? – Clifford
'ctypes import' 'ifadesini atladınız mı? – Clifford