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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值