在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)
|