在python中定义ctype等价结构

2024-10-01 15:48:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我在define.h文件的struct中有一个struct,方法是:

typedef struct
{
 byte iVersion;
 long iMTPL;
 byte iMPR;
 byte iTempCompIndex;
 byte iTempCompRemainder;

} Message_Tx_Datapath;

typedef struct
{
 byte               iNumTxPaths;
 Message_Tx_Datapath datapath[NUM_TX_PATHS];
 } Message_Tx;

我想用python中的ctypes定义一个等价的结构,这样当我使用dll时,我可以传递这个结构来获取python中的数据。在

如何在python中定义它呢。我知道如何定义一个单级结构,但这是一个结构中的一个结构,我不知道如何定义它。请帮忙。在

下面是我如何开始我的代码:

^{pr2}$

Tags: 文件方法message定义byte结构structlong
1条回答
网友
1楼 · 发布于 2024-10-01 15:48:16

看起来像这样:

import ctypes

NUM_TX_PATHS = 4    # replace with whatever the actual value is

class Message_Tx_Datapath(ctypes.Structure):
    _fields_ = [('iVersion', ctypes.c_byte),
                ('iMTPL', ctypes.c_long),
                ('iMPR', ctypes.c_byte),
                ('iTempCompIndex', ctypes.c_byte),
                ('iTempCompRemainder', ctypes.c_byte)]

class Message_Tx(ctypes.Structure):
    _fields_ = [('iNumTxPaths', ctypes.c_byte),
                ('datapath', Message_Tx_Datapath*NUM_TX_PATHS)]

参见ctypes documentation on arrays。在

相关问题 更多 >

    热门问题