如何将c++枚举转换为ctypes ?结构使用Python 2.7.2
How can I convert a C++ enum to ctypes.Structure using Python 2.7.2?
我已经搜索和搜索,但我还没有找到一个例子,做什么我需要做的。
我发现如何表示'enum 39;在Python中?这里是SO,但它不包括ctypes。structure。我还发现在ctypes中使用枚举。结构这里是SO,但它包括指针,我不熟悉。
我有一个头文件,其中包括typedef enum,我需要在ctypes中使用。结构
c++头文件:typedef enum {
ID_UNUSED,
ID_DEVICE_NAME,
ID_SCSI,
ID_DEVICE_NUM,
} id_type_et;
Python文件(我目前的做法):
class IdTypeEt(ctypes.Structure):
_pack_ = 1
_fields_ = [ ("ID_UNUSED", ctypes.c_int32),
("ID_DEVICE_NAME", ctypes.c_char*64),
("ID_SCSI", ctypes.c_int32),
("ID_DEVICE_NUM", ctypes.c_int32) ]
如有任何建议,我将不胜感激。越简单越好
enum
不是一个结构体,它是一个具有一组预定义值(枚举常量)的整型。用ctypes.Structure
表示是没有意义的。您正在寻找类似这样的内容:
from ctypes import c_int
id_type_et = c_int
ID_UNUSED = id_type_et(0)
ID_DEVICE_NAME = id_type_et(1)
ID_SCSI = id_type_et(2)
ID_DEVICE_NUM = id_type_et(3)
相关文章:
- 如何大致将 cpp 代码结构转换为 python
- C++中类似Python字典的结构?
- 如何通过 C 在用户定义的结构中编写双数组并使用 CTYPE 传递给 Python
- 如何使用 SWIG 接口访问 python 中的 C++ typedef'd 结构
- 用于基于节点的树结构的Python绑定
- C 通过 UART 将结构发送到 Python
- Python和Ctypes访问带有嵌套结构的C 类
- 如何为C++结构自动生成 python 数据解析器
- 什么可以用来在 C++ 中保存图形等结构(Python pickle 等效物)
- 如何在python中创建等效的结构并使用malloc更改空指针的引用
- 使用Python将C 结构更改为JSON字符串
- C++/Python 中对象和结构的二进制文件结构
- 使用 pybind11 将自定义结构(指针向量)从 C++ 传递到 python 的方法是什么?
- 序列化python类与C型结构(带有位式结构)以发送插座
- 使用 ctypes 将 python dict 转换为结构
- Python 数据结构及其等效C++
- 使用 boost::p ython,如何将结构体向量作为字典列表返回给 Python
- 如何在 Python 中的结构中使用C++结构
- 如何将CPP结构中的字符串转换为Python struct
- Python 数据结构:map<string、vector<int>>