私はctypes.BigEndianStructureに問題があります。フィールドに設定した値を取得できません。私のコードはこのようなものです。除外としてPython ctypes.BigEndianStructureは値を保存できません
import ctypes
class MyStructure(ctypes.BigEndianStructure):
_pack_ = 1
_fields_ = [
('fx', ctypes.c_uint, 7),
('fy', ctypes.c_ubyte, 1)
]
x = MyStructure()
それは0を出力します。
print x.fy # Prints 0
が、私はそれに値を設定するが、それはまだ0を出力します。
x.fy = 1
print x.fy # Still prints 0
再生できません。あなたの正確なコードを貼り付け、Python 2.7.5(32ビット)を使用しました。 –
さらに重要なことに、 'ctypes.sizeof(MyStructure)'を期待どおりにチェックしてください。現在の定義は5バイトです。 1バイトをパックしようとするならば、 'fx'と' fy'は 'c_ubyte'でなければなりません。異なるタイプを使用すると、新しいパッキングが開始されます。 –
Python 3.3(64ビット)でもそのまま動作します。再現するための詳細が必要です。 –