Господа специалисты, помогите пожалуйста вашему зеленому коллеге. Есть либа примерно следующего содержания:
void Print(void);
void Add(int x,int y);
typedef struct point
{
int x;
int y;
} pnt;
struct shell
{
void (*Print)(void);
void (*Add)(int x,int y);
pnt *_point;
};
shell *Init(void);
Вопрос второй: Либа собирается под Linux. Дальше при попытке инициализировать структуру и обратиться ее членам возникает ошибка:
from ctypes import *
ex_obj = CDLL("libexample.so")
class my_point(Structure):
_fields_ = [("x",c_int),("y",c_int)]
class shell(Structure):
pass
shell._fields_ = [("p",POINTER(my_point)),...]
ex_obj.Init.restype = POINTER(shell)
s1 = ex_obj.Init()
print s1.p.x
...
AttributeError: 'LP_shell' object has no attribute 'p'
...
ЗЫ. Маны читал, примеры рассматривал, все изложенные в доках примеры работают, бо являются достаточно тривиальными.