2
私はこのような BYREF
のctypesでそれを使用してい
int ReadMemU32(long address , long *pdata)
次のDLL関数を使用しています
ctypesは:
>>> read_data
c_ulong(55L)
>>> read_data == 55
False
>>> read_data == c_ulong(55L)
False
なぜ偽ですか?
代わりに私が行った場合:
# my_memory is of type Class(Structure) with c_ulong field names read_data
my_memory.read_data = read_data
し、結果を確認してください。
>>> my_memory.read_data
55L
>>> my_memory.read_data == 55
True
違いは何ですか?あなたのコードの場合
なぜc_ulongフィールドを持つ構造体への代入が異なるのでしょうか? –
Ctypes構造体クラスのacessingプロパティは、フィールドの値をPythonの数値オブジェクトに強制的に変換するので、上記の例ではrepr(my_memory.read_data)をrepr(read_data)にco9mparedとして出力するだけです。 – jsbueno