0

データのブロックを書き込むC++アプリケーションがありunsigned charます。だから私は書いているでしょう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 strstringに変換する必要があると思いますarray 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 に答える