我刚开始使用 BitString 和 ctypes,我有一个二进制文件的一部分存储在startdata
一个BitArray
类中。
> print(startdata)
0x0000000109f0000000010605ffff
现在,我必须将这些数据按原样传递给一个接受unsigned char *
as 参数的 C 函数,所以我首先尝试做这样的事情:
buf = (c_ubyte * len(startdata))()
最后这样做:
buf_ptr = cast(pointer(buf), POINTER(c_ubyte))
这可行,但是如何将字节数据分配给startdata
我刚刚创建的数组/缓冲区?
这不起作用:
> buf = (c_ubyte * len(startdata))(*startdata.bytes)
TypeError: an integer is required