在C文件中定义如下
typedef struct
{
long r_id;
long data[10];
} Data;
Data*getdata(){
Data* r = (Data*)malloc(sizeof(Data));
r->r_id = 123;
int a[10] = {1,2,3,4,5}
memcpy(r->data,a, sizeof(long) * 10);
return r;
}
python 语言
import ctypes
dll = ctypes.cdll.LoadLibrary("cit_data.dll")
class StructPointer(ctypes.Structure):
_fields_ = [("r_id", ctypes.c_long),
("data", ctypes.c_long) ]
dll.getdata.restype = ctypes.POINTER(StructPointer)
p = dll.getdata()
print(p.contents.r_id)
print(p.contents.data)