我以这种方式在define.h文件的结构中有一个结构:
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中定义它。我知道如何定义单个级别的结构,但这是结构中的结构,我不知道如何定义它。请帮忙。
以下是我启动代码的方式:
class Message_Tx(ctypes.Structure):
_fields_ = [("iNumTxPaths",c_byte),("datapath",????)]
答案 0 :(得分:2)
这看起来像这样:
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)]