python 调用C语言动态库 获取 C 文件中的结构体指针

论坛 期权论坛 脚本     
匿名技术用户   2021-1-10 23:13   364   0

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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP