0

我有一个写入unsigned char数据块的 c++ 应用程序。所以我会写unsigned char data[8]

现在,我正在使用 python(python 中的读取ctypes功能)在我的工具中读取和缓冲它以进行进一步处理。

问题
当我从文件中读取数据并将其分解为 8 个块时,所有结果数据都是字符串格式。我具有以下结构

class MyData(Union):
     _fields_=[ ("data",8 * c_ubytes), ("overlap", SelfStructure) ]

现在,我正在尝试按如下方式传递数据

  dataObj = MyData(str[0:8])  

它抛出一个错误,expected c_ubyte_Array_8 instance, got str. 我想我需要转换stringarray of size 8 of c_ubyte. 尝试过bytearray但没有成功。请让我知道该怎么做。

4

1 回答 1

2

尝试这个:

(ctypes.c_ubyte * 8)(*[ctypes.c_ubyte(ord(c)) for c in str[:8]])
于 2013-02-05T12:12:42.630 回答